function getTree($list){
//数组预处理,这里的$v['id']一定要唯一,不然可能会出现被覆盖的情况
foreach ($list as $vv){
$return[$vv['id']] = [
'id' => $vv['id'],
'name' => $vv['name'],
'pid' => $vv['pid'],
'pname' => $vv['pname'],
'child' => '',
];
}
//dump($return);
//将每个目录与父目录进行拼接,并找到根目录
foreach ($return as $k=>$v) {
if ($v['pid'] > 0)
//找到父路径,这里没有判断 $return[$v['pid']]['child']是否存在,
//TP5下或者在不存在的情况下可能会报错,自己加一下
$return[$v['pid']]['child'][$v['id']] = &$return[$k];
else
//找到根目录
$parent[] = &$return[$k];
}
//打印根目录
return $parent;
}
参数$list 是需要进行处理的数组