PHP 配列をツリー構造に変換する方法: 1. PHP サンプル ファイルを作成します; 2. "function buildTree(array $elements, $parentId = 0)" という構文で関数を構築します。パラメータ 1 は次のようになります。変換された配列、パラメータ 2 は指定されたルート ノードです; 3. 関数内で $branch 空の配列を定義してツリー構造を保存し、それを走査します; 4. 走査後、変更された要素を $branch 配列に追加し、ツリー構造を返します構造体配列 $branch を使用するだけです。
このチュートリアルのオペレーティング システム: Windows 10 システム、php8.1.3 バージョン、Dell G3 コンピューター。
PHP 配列をツリー構造に変換します。これは再帰的メソッドによって実現できます。
以下は PHP 関数の例です:
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; }
この関数では、パラメーター $elements は変換される配列であり、$parentId は指定されたルート ノード (デフォルトは 0) です。この関数は、まず $branch という名前の空の配列を定義して、ツリー構造を保存および走査します。
各ループで、関数は現在の要素が指定された親 ID を持つかどうかをチェックします。そうであれば、それは現在のノードの子ノードであることを意味します。次に、独自の buildTree() 関数を呼び出して子ノードを追加し、その子ノードを $children 変数に割り当てます。関数は $children が空かどうかを引き続きチェックし、空でない場合は、子ノードを現在の要素の 'children' キーに割り当てます。最後に、関数は変更された要素を $branch 配列に追加します。
すべての要素が処理されると、関数はツリー構造配列 $branch を返します。
次のデータがあるとします。
$elements = [ ['id' => 1, 'name' => 'Parent 1', 'parent_id' => 0], ['id' => 2, 'name' => 'Child 1', 'parent_id' => 1], ['id' => 3, 'name' => 'Grandchild 1', 'parent_id' => 2], ['id' => 4, 'name' => 'Grandchild 2', 'parent_id' => 2], ['id' => 5, 'name' => 'Parent 2', 'parent_id' => 0], ];
この関数を呼び出すと、ツリー構造を生成できます。
以上がPHPの配列をツリー構造に変換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。