无限极递归的处理方式

//先查询所有的数组
    public function getAll(){
        $data = $this->select();
        //调用递归查询相关的小数组
        return $this->digui($data,$pid=0);
    }

    //定义一个递归的方法
    public function digui($data,$pid=0){
        //定义一个儿子的数组,形成孙子结构
        $child = [];
        foreach ($data as $k => $v){
            if($v['pid']==$pid){
                $child[] = $v;
            }
        }

        //判断一下$child是不是空的
        if(empty($child)){
            return null;
        }

        //如果不是空的,继续循环他的孙子
        foreach ($child as $kk => $vv){
            $res = $this->digui($data,$vv['nid']);
            $child[$kk]['child'] = $res;
        }

        return $child;
    }
原文地址:https://www.cnblogs.com/jiangshiguo/p/13847310.html