php技术中关于无限极分类的运用案例

发布时间:2019-08-07

第一种:

/*把获取到的所有子评论生成分类树*/

    public function generateTreeOne($array,$pid = 0){

        $arr = $this->generateTreeTwo($array,$pid);

        //第一步 构造数据

        $items = array();

        foreach($arr as $value){

            //转换时间

            $value['add_time'] = date('Y-m-d',$value['add_time']);

            $items[$value['id']] = $value;

        }

        //第二部 遍历数据 生成树状结构

        $tree = array();

        foreach($items as $key => $value){

            if(isset($items[$value['pid']])){

                $items[$value['pid']]['clist'][] = &$items[$key];

            }else{

                $tree[] = &$items[$key];

            }

        }

        return $tree;

    }

/*获取pid下所有子评论*/

    private function generateTreeTwo($array,$pid = 0){

        $arr=array();

        foreach ($array as $v) {

            if ($v['pid']==$pid) {

                $arr[]=$v;

                $arr=array_merge($arr,$this->generateTreeTwo($array,$v['id']));

            }

        }

        return $arr;

    }

第二种:

    private function generateTree($array){

 

        //第一步 构造数据

        $items = array();

        foreach($array as $value){

            //转换时间

            $value['add_time'] = date('Y-m-d',$value['add_time']);

            $items[$value['id']] = $value;

        }

        //第二部 遍历数据 生成树状结构

        $tree = array();

        foreach($items as $key => $value){

            if(isset($items[$value['pid']])){

                $items[$value['pid']]['clist'][] = &$items[$key];

            }else{

                $tree[] = &$items[$key];

            }

        }

        return $tree;

    }