• 查父级,往上递归

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    function getTree($data, $pid){  
    static $tree = [];
    foreach ($data as $k => $v){
    if ($v['pid'] == $pid){
    $result = $this->getTree($data,$v['id']);
    if ($result != ''){
    $v['child'] = $result;
    }
    $tree[] = $v;
    unset($data[$k]);
    }
    }
    return $tree;
    }
  • 查子集,往下递归

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    function getTree($data, $id = 0,$lev = 0){  
    static $tree = [];
    foreach ($data as $k => $v){
    if ($v['pid'] == $id){
    $v['lev'] = $lev;
    $tree[] = $v;
    unset($data[$k]);
    getTree($data, $v['id'], $lev+1);
    }
    }
    return $tree;
    }