首頁 > 後端開發 > php教程 > 遞歸函數如何從平面資料庫結果建立多維數組?

遞歸函數如何從平面資料庫結果建立多維數組?

DDD
發布: 2024-12-15 20:59:15
原創
555 人瀏覽過

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

從資料庫結果產生多維數組的遞歸函數

建立巢狀問題:

從平面結果表中建構嵌套問題:

解:
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. 解釋:
  2. 使用演算法使用遞歸迭代建構層次樹結構:
  3. 它初始化一個空數組$branch 儲存樹的目前層級。
  4. 迭代元素並檢查元素的parent_id 是否與指定的$parentId 相符。
  5. 如果找到匹配,則表示該元素是目前父級的子級,應加到 $branch。
  6. 它以元素的 id 作為遞歸呼叫 buildTree 函數new $parentId 來尋找其子元素。
如果找到任何子元素,它們將作為子數組添加到當前元素。 處理完所有子元素後,傳回 $branch 陣列表示層次結構的下一個層級。 初始呼叫 buildTree(初始 $parentId 為 0)會取得層次結構的根元素,並且遞歸呼叫填滿巢狀結構。

以上是遞歸函數如何從平面資料庫結果建立多維數組?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板