php 配列をツリー配列に変換する方法: 1. ツリー配列の構造と概念を理解します。ツリー配列では、各要素に一意の識別子と親要素の識別子があります。; 2. サンプルを準備します。配列、いくつかの項目とその親要素識別子を含む通常の連想配列を作成します; 3. 通常の配列をツリー配列に変換する関数を作成する変換関数を作成します; 4. 変換関数を呼び出して、結果。
このチュートリアルの動作環境: Windows10 システム、php8.1.3 バージョン、DELL G3 コンピューター。
PHP では、配列は非常に一般的で実用的なデータ構造です。場合によっては、データをより便利に整理して表示するために、通常の配列をツリー配列に変換する必要があります。この記事では、PHPの配列をツリー配列に変換する方法を紹介します。
1. ツリー配列の構造と概念を理解する
ツリー配列では、各要素が一意の識別子と親要素シンボルの識別子を持ちます。親要素の識別子と子要素の識別子を照合して、要素間の階層関係を決定できます。ツリー配列の構造はツリー構造に似ており、最上位の要素はルート要素と呼ばれ、子要素はリーフ ノードまたは他のブランチ ノードになります。
2. サンプル配列の準備
例として、いくつかの項目とその親要素の識別子を含む通常の連想配列を次のように作成します。 ##上記の配列にはいくつかの項目が含まれており、親要素識別子 0 の要素がルート要素です。
3. 変換関数の作成次に、通常の配列をツリー配列に変換する関数を作成します。まず、配列を走査してツリーを構築するための再帰関数を定義する必要があります。この関数は、入力配列と親要素の識別子の 2 つのパラメーターを受け取ります。
$data = array( array('id' => 1, 'name' => '项目1', 'parent_id' => 0), array('id' => 2, 'name' => '项目1.1', 'parent_id' => 1), array('id' => 3, 'name' => '项目1.2', 'parent_id' => 1), array('id' => 4, 'name' => '项目1.1.1', 'parent_id' => 2), array('id' => 5, 'name' => '项目2', 'parent_id' => 0), array('id' => 6, 'name' => '项目2.1', 'parent_id' => 5), array('id' => 7, 'name' => '项目2.2', 'parent_id' => 5), );
上記のコードでは、まず空の配列 $tree を作成し、次に foreach ループを使用して入力配列 $data を走査します。要素の親要素識別子が、渡された親要素識別子と同じである場合、$children という名前の子配列が作成され、buildTree() 関数が再帰的に呼び出され、子要素が $children に追加されます。 $children が空の配列でない場合は、それを現在の行の "children" キーに追加します。最後に、現在の行を $tree 配列に追加します。
4. 変換関数を呼び出して結果を出力します次に、buildTree() 関数を呼び出してサンプル配列をパラメーターとして渡します。次に、print_r() 関数または var_dump() 関数を使用して結果を出力し、変換が成功したかどうかを確認できます。
function buildTree(array $data, $parentId = 0) { $tree = array(); foreach ($data as $row) { if ($row['parent_id'] == $parentId) { $children = buildTree($data, $row['id']); if ($children) { $row['children'] = $children; } $tree[] = $row; } } return $tree; }
上記のコードを実行すると、ツリー配列の出力が表示されます。
$treeData = buildTree($data); print_r($treeData);
ご覧のとおり、通常の配列がツリー配列に正常に変換されました。
概要
この記事では、PHP 配列をツリー配列に変換する方法を紹介します。ツリー配列の構造と概念を理解することで、ツリーを構築するための再帰関数を作成し、その関数を呼び出して配列を変換します。このようにして、データを簡単に整理して表示できます
以上がPHP配列をツリー配列に変換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。