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

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

Linda Hamilton
发布: 2024-12-30 06:15:12
原创
641 人浏览过

How Can a Recursive Function Build a Multidimensional Array from Flat Database Results?

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

要生成表示页面或类别等分层数据的嵌套数组,递归函数经常被雇用。目标是获取数据库记录的平面数组并将其转换为反映父子关系的结构化数组。

树构建的递归函数

以下函数 buildTree 完成此任务:

def buildTree(elements, parentId=0):
    branch = []
    for element in elements:
        if element['parent_id'] == parentId:
            children = buildTree(elements, element['id'])
            if children:
                element['children'] = children
            branch.append(element)
    return branch
登录后复制

如何实现有效

  1. 初始化分支:对于给定的父ID,创建一个空分支列表来保存子元素。
  2. 迭代元素: 循环遍历平面中的所有元素数组。
  3. 识别子元素:如果元素的parent_id 与当前父ID 匹配,则它是分支的子元素。
  4. 子元素的递归:为已识别的子级递归调用该函数,找到其子子元素。
  5. 添加到分支: 将子元素及其子子元素(如果有)追加到分支列表。
  6. 返回分支: 处理完所有子项后,返回填充的分支

用法示例

要将数据库记录处理为分层树,请使用:

tree = buildTree(database_result)
登录后复制

树变量将现在包含一个嵌套数组,表示页面或类别的层次结构。

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

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