首頁 > 後端開發 > php教程 > 如何從分層數組列表有效率地建構樹結構?

如何從分層數組列表有效率地建構樹結構?

Mary-Kate Olsen
發布: 2024-11-29 11:01:10
原創
737 人瀏覽過

How to Efficiently Build a Tree Structure from a Hierarchical Array List?

從數組列表構建樹結構

給定一個具有層次關係的項目數組列表,我們如何有效地將其轉換為嵌套樹結構?

解決方案:

為了在不使用複雜的資料庫最佳化的情況下實現這種轉換,我們可以使用遞歸函數:

$arr = array(
  array('id' => 100, 'parentid' => 0, 'name' => 'a'),
  array('id' => 101, 'parentid' => 100, 'name' => 'a'),
  array('id' => 102, 'parentid' => 101, 'name' => 'a'),
  array('id' => 103, 'parentid' => 101, 'name' => 'a'),
);

$new = array();
foreach ($arr as $a) {
    $new[$a['parentid']][] = $a;
}
$tree = createTree($new, array($arr[0]));
print_r($tree);

function createTree(&$list, $parent){
    $tree = array();
    foreach ($parent as $k => $l){
        if(isset($list[$l['id']])){
            $l['children'] = createTree($list, $list[$l['id']]);
        }
        $tree[] = $l;
    } 
    return $tree;
}
登入後複製

這段程式碼將項目排列成嵌套的層次結構,表示它們之間的父子關係。可以使用 print_r 列印產生的樹狀結構。

透過利用遞歸函數,我們可以有效地將陣列列表轉換為樹結構,從而輕鬆導航和組織資料。

以上是如何從分層數組列表有效率地建構樹結構?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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