ホームページ  >  記事  >  バックエンド開発  >  PHPの配列をツリー構造に変換する方法

PHPの配列をツリー構造に変換する方法

尊渡假赌尊渡假赌尊渡假赌
尊渡假赌尊渡假赌尊渡假赌オリジナル
2023-06-07 09:29:031228ブラウズ

PHP 配列をツリー構造に変換する方法: 1. PHP サンプル ファイルを作成します; 2. "function buildTree(array $elements, $parentId = 0)" という構文で関数を構築します。パラメータ 1 は次のようになります。変換された配列、パラメータ 2 は指定されたルート ノードです; 3. 関数内で $branch 空の配列を定義してツリー構造を保存し、それを走査します; 4. 走査後、変更された要素を $branch 配列に追加し、ツリー構造を返します構造体配列 $branch を使用するだけです。

PHPの配列をツリー構造に変換する方法

このチュートリアルのオペレーティング システム: 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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。