无限极分类如何把 数据 遍历成 tree 结构

关键
子类 pid 等于 父类 id

参考网址
https://blog.csdn.net/LYPHPER/article/details/70332425

public function xuqiu333()
{
    echo '<pre>';
    $list = K::M('code/xuqiu')->chaxun();     // 查询表中数据
    $a = $this->array2level($list);
    $b = $this->arr2tree($list);
    var_dump($a);     // $a 和 $b 是两种不同结构的数据
    var_dump($b);
    die;
    // $tree = $this->tree($list);
   
}

// 方法1

function array2level($array, $pid = 0, $level = 1) 
{ 
    static $list = []; 
    foreach ($array as $v) 
    { 
        if ($v['pid'] == $pid) 
        { 
            $v['level'] = $level;
            $list[] = $v; 
            $this->array2level($array, $v['id'], $level + 1);
         }
     } 
	return $list; 
}

// 方法2

function arr2tree($tree, $rootId = 0,$level=1) 
{ 
    $return = array(); 
    foreach($tree as $leaf) 
    { 
        if($leaf['pid'] == $rootId) 
        { 
            $leaf["level"] = $level; 
            foreach($tree as $subleaf) 
            { 
                if($subleaf['pid'] == $leaf['id']) 
                { 
                    $leaf['children'] = $this->arr2tree($tree, $leaf['id'],$level+1); break; 
                } 
            } 
            $return[] = $leaf; 
        } 
    } 
    return $return;
 }

猜你喜欢

转载自blog.csdn.net/qq_39835505/article/details/84987326