首页 > 代码库 > 无限分类

无限分类

/**
     * 二级分类
     * @param $data
     * @return array
     */
    public function getTree($data)
    {
        $arr = [];
        foreach ($data as $k=>$v){
            if($v->cate_pid == 0 ){
                $data[$k][_cate_name] = $v[cate_name];
                $arr[] = $data[$k];
            }
            foreach ($data as $m=>$n) {
                if($v->cate_id == $n->cate_pid){
                    $data[$m][_cate_name] = |-- .$n[cate_name];
                    $arr[] =  $data[$m];
                }
            }
        }
        return $arr;
    }
 /**
     * 递归方法
     * @param $data        要遍历的数组
     * @param int $pid     父id
     * @param int $level   缩进值
     * @return array
     */
    public function getTree($data,$pid=0,$level=0)
    {
        static $res = []; //静态变量的作用:在函数内部定义的变量能起到全局变量的作用
        foreach ($data as $k=>$v){
            if($v->cate_pid == $pid){
                //如果父id相等 说明找到 保存起来
                $v[level] = $level;     //页面中使用level 则 str_repeat(‘_‘,$data[‘level‘]);
                $res[] = $v;
                //改变条件递归查找
                $this->getTree($data,$v->cate_id,$level+1);
            }
        }
        return $res;
    }

 

无限分类