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

递归函数从数据库结果生成多维数组,第1张

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

一些非常简单的通用树构建:

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. 取所有元素的数组和当前父对象的ID(最初是
    0
    / nothing /
    null
    / whatever)。
  2. 遍历所有元素。
  3. 如果
    parent_id
    元素的匹配您在1中获得的当前父ID,则该元素是父元素的子元素。将其放入您当前的孩子列表中(此处:)
    $branch
  4. 用您刚刚在3.中标识的元素的ID递归调用该函数,即找到该元素的所有子元素,并将它们添加为
    children
    元素。
  5. 返回找到的孩子列表。

换句话说,执行此函数将返回元素列表,这些元素是给定父ID的子元素。用调用它

buildTree($myArray,1)
,它将返回具有父ID为1的元素的列表。最初,以父ID为0调用此函数,因此返回没有父ID的元素,它们是根节点。该函数以递归方式调用自身以找到孩子的孩子。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5151602.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-18
下一篇 2022-11-18

发表评论

登录后才能评论

评论列表(0条)

保存