您的位置:首页 > 其它

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

2015-04-10 13:15 399 查看
第一种,直接返回数组(二维)

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."  ");

            }

        }

    }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: