php数组转树形结构

程序
1 362
caixiaoxu
2018-09-13

包封函数

function tree($items, $pid = "fid")
{
$map = [];
$tree = [];
foreach ($items as &$it) {$map[$it['id']] = &$it;} //数据的ID名生成新的引用索引树
foreach ($items as &$it) {
$parent = &$map[$it[$pid]];
if ($parent) {
$parent['children'][] = &$it;
} else {
$tree[] = &$it;
}
}
return $tree;
}

效果



回帖
  • 这个函数中,$parent和$map实际上都是$items的引用,也就是说,他们都是$items中的某一个,有点类似于c的指针,说白了就是地址传过来传过去,如果看不到,就在return前把$map打印出来看就懂了

    0 回复