黑马程序员技术交流社区

标题: php递归算法处理 [打印本页]

作者: 庭院深深深几许    时间: 2019-1-4 11:04
标题: php递归算法处理
php递归算法处理

[PHP] 纯文本查看 复制代码
//递归处理
    public function recursion($data,$path=0,$flag=1){
        static $arr=array();
        foreach($data as $key=>$val){
            if($val['pid']==$path){
                $val['flag']=$flag;
                $arr[]=$val;
                $this->recursion($data,$val['power_id'],$flag+1);
            }
        }
        return $arr;
    }
、、、、、、、、、、、、、、、、、、、、
<?php echo str_repeat('    ',$val['flag'])?>
<?php echo $val['type_name']?>



/**
* 查询分类树
* @param $list
* @param string $pk
* @param string $pid
* @param string $child
* @param int $root
* @return array
*/
public static function makeTree($list,$pk='category_id',$pid='pid',$child='_child',$root=0){
    $tree = [];

    $packData = [];

    foreach ($list as  $data) {
        //转换为带有主键id的数组
        $packData[$data[$pk]] = $data;
        //$packData[1]=$data; $packData[2]=$data
    }

    foreach ($packData as $key =>$val){
        if($val[$pid]==$root){
            //代表跟节点
            $tree[] = & $packData[$key];
        }else{
            //找到其父类
            $packData[$val[$pid]][$child][] = & $packData[$key];
        }
    }
    return $tree;
}







欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2