无限极分类

堕落无心 2019-03-17

php 函数 人工智能 static 空格 机器人 list 存储 数组

$arr = array(
            0=>[
                'id'=>1,
                'name'=>'科技',
                'pid'=>0,
            ],
            1=>[
                'id'=>2,
                'name'=>'人工智能',
                'pid'=>1,
            ],
            2=>[
                'id'=>3,
                'name'=>'美食',
                'pid'=>0
            ],
            3=>[
                'id'=>4,
                'name'=>'重庆小面',
                'pid'=>3
            ],
            4=>[
                'id'=>5,
                'name'=>'机器人',
                'pid'=>2
            ]
        );

public function  category($arr,$pid=0,$level=0){
        //定义一个静态变量,存储一个空数组,用静态变量,是因为静态变量不会被销毁,会保存之前保留的值,普通变量在函数结束时,会死亡,生长周期函数开始到函数结束,再次调用重新开始生长
        //保存一个空数组
        static $list=array();
        //通过遍历查找是否属于顶级父类,pid=0为顶级父类,
        foreach($arr as $value){
            //进行判断如果pid=0,那么为顶级父类,放入定义的空数组里
            if($value['pid']==$pid){
                //添加空格进行分层
                $arr['level']=$level;
                $list[]=$value;
                //递归点,调用自身,把顶级父类的主键id作为父类进行再调用循环,空格+1
                self::category($arr,$value['id'],$level+1);
            }
        }
        return $list;//递归出口
    }

$list = category($arr,0,0);

_

登录 后评论
下一篇
我是小助手
32742人浏览
2019-07-31
相关推荐
php css
745人浏览
2013-01-25 17:14:00
php核心知识要点
513人浏览
2015-04-13 10:07:00
左右值无限级分类
5067人浏览
2016-05-12 11:46:58
asp.net开源CMS推荐
729人浏览
2013-05-29 16:04:00
centos平台cms系统
846人浏览
2017-11-27 11:45:00
PHP无限极分类之数组
530人浏览
2017-11-08 21:43:00
php无限极分类
562人浏览
2017-11-01 21:45:00
0
0
0
388