PHP 递归方法构建二维数组树形结构
下面是一个基于递归的PHP方法,用于处理具有pid和level属性的二维数组:
function buildTree($array, $parentId = 0, $level = 0) {
$tree = [];
foreach ($array as $item) {
if ($item['pid'] == $parentId) {
$item['level'] = $level;
$item['children'] = buildTree($array, $item['id'], $level + 1);
$tree[] = $item;
}
}
return $tree;
}
使用方法:
// 示例数据
$data = [
['id' => 1, 'pid' => 0],
['id' => 2, 'pid' => 1],
['id' => 3, 'pid' => 1],
['id' => 4, 'pid' => 2],
['id' => 5, 'pid' => 2],
['id' => 6, 'pid' => 3],
['id' => 7, 'pid' => 3],
];
$tree = buildTree($data);
// 输出结果
print_r($tree);
这个方法会根据数组中的pid和level属性构建一个树形结构。它会迭代数组中的每个元素,如果元素的pid等于指定的父级ID,就将它添加到树中,并递归调用自身来查找子元素。最终返回一个树形结构的数组。
希望对你有所帮助!
原文地址: http://www.cveoy.top/t/topic/o4vu 著作权归作者所有。请勿转载和采集!