无限分类---重新排序+生成树型

无限分类

这里简单写一个无限分类
无限分类的应用场景很多,不如商城的后台管理系统需要添加一个分类,还有管理权限中的角色管理也会用到。

上代码


    //生成树方法
    public function getTree($data,$pid=0,$level=0){
        static $res=array();
        foreach($data as $k=>$v){
            if($v['pid']==$pid){
                $v['level']=$level;  //$level 用于识别当前分类的级别
                $res[]=$v;
                $this->getTree($data,$v['id'],$level+1);//将查询出的$v['id'],作为参数进行递归
                //level 加一
            }
        }
        return $res;
    }

    //执行方法
    public function getData(){
        //查出所有数据
        $data=M('ushop_class')->select();
        $res=$this->getTree($data);
        dump($res);
    }

以上只是做到了重新排序,但是要做到生成树还是要改进一下的如下

 public function createTree($data, $pid = 0)
    {
        $tree = '';
        foreach($data as $k => $v)
        {
            if($v['pid'] == $pid)
            {         //父亲找到儿子
                $v['son'] = $this->createTree($data, $v['id']);
                $tree[] = $v;
//                unset($data[$k]);
            }
        }
        return $tree;
    }

智商不够笔记来凑

你可能感兴趣的:(php,thinkphp)