PHP でフラット配列からツリー構造を構築する方法

Susan Sarandon
リリース: 2024-11-26 20:13:16
オリジナル
153 人が閲覧しました

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

PHP でフラット配列からツリーを構築する

階層データ構造を扱うときの一般的なタスクは、フラット配列をフラット配列に変換することです。木のような構造。これは、親子関係を識別し、それに応じて要素をネストすることで実行できます。

これにアプローチする 1 つの方法は、配列を反復処理して各要素の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 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート