ホームページ >バックエンド開発 >PHPチュートリアル >階層構造の作成における PHP 配列グループ化関数の使用
PHP 配列グループ化関数を使用すると、指定されたキーに従って配列要素をグループ化することで階層構造を作成でき、その結果、複数レベルのネストを持つ配列が得られます。このコード例では、array_group_by() を使用してデータをグループ化し、再帰関数 createHierarchy() を使用してデータを階層に変換します。この関数は、グループ化された結果を反復処理し、parent_id に基づいてサブレベルを作成し、最終的に適切な階層構造を持つネストされた配列を返します。
#階層構造の作成における PHP 配列グループ化関数の適用
データ階層を維持する必要がある処理シナリオにおける配列グループ化関数で非常に役立ちます。 PHP では、array_group_by 関数を使用して、指定されたキーに基づいて配列内の要素をグループ化することにより、複数のレベルを持つネストされた配列を作成できます。
コード例
<?php // 有一个包含 id 和 parent_id 的表数据 $tableData = [ ['id' => 1, 'parent_id' => null], ['id' => 2, 'parent_id' => 1], ['id' => 3, 'parent_id' => 2], ['id' => 4, 'parent_id' => 1], ['id' => 5, 'parent_id' => 4], ]; // 根据 parent_id 对表数据进行分组 $groupedData = array_group_by($tableData, 'parent_id'); // 递归函数用于将分组结果转换为层级结构 function createHierarchy($data, $parentId = null) { $result = []; foreach ($data as $id => $values) { if ($id == $parentId) { foreach ($values as $value) { $result[] = [ 'id' => $value['id'], 'value' => $value['value'], 'children' => createHierarchy($data, $value['id']), ]; } return $result; } } } // 将分组数据转换为层级结构 $hierarchy = createHierarchy($groupedData, null); // 打印层级结构 print_r($hierarchy);
出力結果
Array ( [0] => Array ( [id] => 1 [value] => 1 [children] => Array ( [0] => Array ( [id] => 2 [value] => 2 [children] => Array ( [0] => Array ( [id] => 3 [value] => 3 [children] => Array ( ) ) ) ) [1] => Array ( [id] => 4 [value] => 4 [children] => Array ( [0] => Array ( [id] => 5 [value] => 5 [children] => Array ( ) ) ) ) ) ) )この例では、
createHierarchy 関数は次のようになります。再帰的アルゴリズムは、グループ化されたデータを走査し、parent_id に基づいてサブレベルを作成します。最終的には、適切な階層構造を持つネストされた PHP 配列が返されます。
以上が階層構造の作成における PHP 配列グループ化関数の使用の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。