PHP 无限级分类最佳实践
function infiniteSort($data, $showFName, $titleFName, $pidFName = 'pid', $idFName = 'id', $levelFName = 'level', $pid = 0, $level = 0)
{
$tree = array();
foreach ($data as $key => $value) {
if ($value[$pidFName] == $pid) {
$value[$levelFName] = $level;
$value[$showFName] = str_repeat(' ', $level) . '|-' . $value[$titleFName];
$tree[] = $value;
unset($data[$key]);
$tempArr = infiniteSort($data, $showFName, $titleFName, $pidFName, $idFName, $level, $value[$idFName], $level + 1);
if(!empty($tempArr)){
$tree = array_merge($tree, $tempArr);
}
}
}
return $tree;
}
注意:
1、$data 已经asc排序过的所有数据
2、$showFName 显示名字的字段名(格式化过的)
3、$titleFName 标题的字段名(无格式化)
4、$levelFName 层级字段名
5、$pidFName 父id的字段名
6、$idFName id的字段名
Tags : 本文未设置标签
所有原创文章采用 知识共享署名-非商业性使用 4.0 国际许可协议 进行许可。
您可以自由的转载和修改,但请务必注明文章来源并且不可用于商业目的。
本站部分内容收集于互联网,如果有侵权内容、不妥之处,请联系我们删除。敬请谅解!
Previous post
梯子伪装
Next post
php相关面试大全 个人总结 长期更新