首页 > 后端开发 > php教程 > 递归函数如何从平面数据库结果创建多维数组?

递归函数如何从平面数据库结果创建多维数组?

DDD
发布: 2024-12-15 20:59:15
原创
554 人浏览过

How Can a Recursive Function Create a Multidimensional Array from a Flat Database Result?

从数据库结果生成多维数组的递归函数

问题:

从平面结果表分层构建嵌套数组,其中每行代表一个项目及其父项ID.

解:

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);
登录后复制

解释:

算法使用递归迭代构建层次树结构:

  1. 它初始化一个空数组$branch 存储树的当前级别。
  2. 迭代元素并检查元素的parent_id 是否与指定的$parentId 匹配。
  3. 如果找到匹配,则表示该元素是当前父级的子级,应添加到 $branch。
  4. 它以元素的 id 作为递归调用 buildTree 函数new $parentId 查找其子元素。
  5. 如果找到任何子元素,它们将作为子数组添加到当前元素。
  6. 处理完所有子元素后,返回 $branch 数组表示层次结构的下一个级别。
  7. 初始调用 buildTree(初始 $parentId 为 0)会获取层次结构的根元素,并且递归调用填充嵌套结构。

以上是递归函数如何从平面数据库结果创建多维数组?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板