配列リストからネストされた配列ツリーを作成する
親子関係を持つ要素の配列があり、それを次のように変換したいと考えています。ネストされた配列ツリー。効率的な解決策は次のとおりです。
# Create a new array indexed by parent ID $new = []; foreach ($arr as $a) { $new[$a['parentid']][] = $a; } # Start with the root node $tree = createTree($new, [$arr[0]]); # Recursive function to build the tree function createTree(&$list, $parent) { $tree = []; foreach ($parent as $l) { # If there are children, create children tree if (isset($list[$l['id']])) { $l['children'] = createTree($list, $list[$l['id']]); } # Add parent to the tree $tree[] = $l; } return $tree; }
このアルゴリズムは、元の配列内の親子関係に基づいて、ネストされた配列ツリーを効率的に構築します。
以上がフラット配列リストからネストされた配列ツリーを効率的に作成するには?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。