欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

php 无限极递归

程序员文章站 2022-05-31 09:19:31
...
public function recursion($list, $newArr=[], $pid = '0',$level = 0){
    $newArr = []; // 新数组用于存放数据
    if (!empty($list)) {
        foreach ($list as $k => &$v) {
            if ($v['pid'] == $pid) { // 如果父ID与pid相同则为父级数组
               $v['level'] = $level; // 层级
               $v['child'] = $this->recursion($list, $newArr, $v['id'],$level+1); // 递归处理数据
               $newArr[] = $v; // 新数据放入数组准备返回
            }
        }
    }
    return $newArr;
    // 使用方法
    /*$city = DB::table('citylist')->get();
    $arr  = json_decode(json_encode($city),true);
    print_r($this->recursion($arr));*/
}