递归实现无限分类列表的读取(子类加空格缩进)

来源:互联网 发布:tensorflow官网下载 编辑:程序博客网 时间:2024/06/07 18:15

第一种,直接返回数组(二维)

public function index(){
        $id = 0;
        $list = $this->readNode($id);
        $this->assign('list',$list);
        $this->display();
    }
    
    private function readNode($id,$i='',$listArray=array()){
        $res = D('Treenode')->where('pid='.$id)->select();
        if($res)
        {
            foreach($res as $k=>$v)
            {
                $v['title'] = $i . $v['title'];
                array_push($listArray,$v);
                $listArray = $this->readNode($v['id'],$i."  ",$listArray);
            }
        }
        return $listArray;
    }

第二种,无返回值,将结果写入一个数组(二维)


var $listArray = array();
    public function index(){
        $id = 0;
        $this->readNode($id);
        //dump($this->listArray);
        $this->assign('list',$this->listArray);
        $this->display();
    }
    
    private function readNode($id,$i=''){
        $res = D('Treenode')->where('pid='.$id)->select();
        if($res)
        {
            foreach($res as $k=>$v)
            {
                $v['title'] = $i . $v['title'];
                array_push($this->listArray,$v);
                $this->readNode($v['id'],$i."  ");
            }
        }
    }


0 0