huangxuegang

你要悄悄学php,然后惊艳所有人
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

递归实现无限极分类列表和二级菜单的展示

Posted on 2020-07-09 15:45  一花多叶无菩提  阅读(368)  评论(0)    收藏  举报
/**
     * 递归的方式实现无限极分类
     * @param $arr
     * @param int $pid
     * @param int $level
     * @return array
     */
    function getTree($arr, $pid = 0, $level = 0)
    {

        static $list = [];
        foreach ($arr as $key => $v) {
            if ($v['pid'] == $pid) {
                $v['level']=$level;
                $list[]=$v;
                unset($arr[$key]);
                $this->getTree($arr,$v['id'],$level+1);
            }
        }
        return $list;
    }

 组装二级分类

public static function tree($table,$p_id='100000') {
$tree = array();
foreach($table as $row){
if($row['pid']==$p_id){
$tmp = self::tree($table,$row['id']);
if($tmp){
$row['children']=$tmp;
}else{
$row['leaf'] = true;
}
$tree[]=$row;
}
}
Return $tree;
}