首頁 >後端開發 >php教程 >如何在 PHP 中從平面數組建立樹結構?

如何在 PHP 中從平面數組建立樹結構?

Susan Sarandon
Susan Sarandon原創
2024-11-26 20:13:16173瀏覽

How to Build a Tree Structure from a Flat Array in PHP?

在PHP 中從平面數組建立樹

使用分層資料結構時的一個常見任務是將平面數組轉換為樹狀結構。這可以透過識別父子關係並相應地嵌套元素來完成。

解決此問題的一種方法是迭代數組並檢查每個元素的parent_id 值。如果元素的parent_id 為零,則將其視為根級別項。對於其他元素,它們的parent_id可用於確定它們在樹中的層次結構。

為了保留原始數組,建議在將元素新增至樹時建立元素的副本。這可以使用 array_values() 函數來實作。

這是一個範例實作:

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;
}

為了防止產生的樹中出現重複元素,至關重要的是從原始陣列。這可以透過在迴圈中加入一行程式碼來完成:

unset($elements[$element['id']]);

使用這個修改過的函數,可以將平面數組轉換為分層樹結構。結果將是一個數組,每個父元素下都有嵌套的子元素。

以上是如何在 PHP 中從平面數組建立樹結構?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn