编辑
起始数组的每个元素都从单独的XML文件中读取。如果没有父级,则parent_id的值为“0”。键实际上是字符串。
对之前的混淆表示抱歉。希望这样更清楚:
/编辑
我的起始数组:
结果数组(树形结构):
function buildTree(array &$elements, $parentId = 0) { $branch = array();
foreach ($elements as $element) { if ($element['parent_id'] == $parentId) { $children = $this->buildTree($elements, $element['id']); if ($children) { $element['children'] = $children; } $branch[] = $element; } }
return $branch; }
这段代码用于构建一个树形结构,输入一个多维数组 $elements 和父级 ID $parentId。
首先,定义了一个名为 $branch 的空数组,用于保存构建好的树形结构。
然后,使用 foreach 循环遍历 $elements 数组中的每个元素。如果该元素的 parent_id 等于当前传入的 parentId,则说明这个元素是当前节点的子节点,需要将其加入到 $branch 数组中,并递归调用 buildTree 函数,查找该元素是否还有子节点。
最后,返回 $branch 数组,即为构建好的树形结构。