从数据库结果递归构建多维数组
从平面数据库结果检索分层数据结构,例如页面和类别菜单,可以使用递归函数。此函数将获取原始数组并根据父子关系将其组织为嵌套数组。
函数:
function buildTree(array $elements, $parentId = 0) { $branch = array(); foreach ($elements as $element) { if ($element['parent_id'] == $parentId) { $children = buildTree($elements, $element['id']); if ($children) { $element['children'] = $children; } $branch[] = $element; } } return $branch; }
工作原理:
用法示例:
使用此方法将示例数据库结果转换为多维数组函数:
$tree = buildTree($rows);
其中 $rows 是数据库结果的原始数组。
输出:
生成的分层数组将类似于所需的输出:
Array ( [0] => Array ( [id] => 1 [parent_id] => 0 [title] => Parent Page [children] => Array ( [0] => Array ( [id] => 2 [parent_id] => 1 [title] => Sub Page [children] => Array ( [0] => Array ( [id] => 3 [parent_id] => 1 [title] => Sub Sub Page ) ) ) ) [children] => Array ( [0] => Array ( [id] => 4 [parent_id] => 0 [title] => Another Parent Page [children] => Array ( ) ) ) ) )
以上是如何从平面数据库结果递归构建多维数组?的详细内容。更多信息请关注PHP中文网其他相关文章!