网站导行,产品分类,分销等级,等有上下级关系的数据构建,让查询到的数据以数组的方式,父级包含子级,子级包含子子级,
无论多少个等级,都可以包含
例:
组构图
代码织构
数据表结构
字段:id,name,pid,level
id //当前id
name //名称
pid //当前父级id
level //等级(最高等级为1,父级等级是1,则子级等级是2,以此类推)
查询当前表,key值为字段id的值,然后进行循环判断处理即可$nav = Db::name('nav')->order('sort asc')->column('id,pid,name,level','id');
$nav = $this->tree($nav);
dump($nav);
创建无限级分类方法//无限级分类
public function tree($arr)
{
//最大等级
$maxLevel = 1;
foreach($arr as $k=>$v){
if($v['level']>$maxLevel){
$maxLevel = $v['level'];
}
}
//当只有一个等级时
if($maxLevel == 1){return $arr;}
//子类归类
for($i=$maxLevel;$i>1;$i--){
foreach($arr as $key=>$val){
if($val['level'] == $i){
$arr[$val['pid']]['child'][] = $val;
unset($arr[$key]);
}
}
}
return $arr;
}