ホームページ >バックエンド開発 >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; }
仕組み:
使用例:
これを使用してサンプル データベースの結果を多次元配列に変換するにはfunction:
$tree = buildTree($rows);
ここで、$rows はデータベース結果の元の配列です。
出力:
結果の階層配列は、目的の配列と似ています。出力:
Array ( [0] => Array ( [id] => 1 [parent_id] => 0 [title] => Parent Page [children] => Array ( [0] => Array ( [id] => 2 [parent_id] => 1 [title] => Sub Page [children] => Array ( [0] => Array ( [id] => 3 [parent_id] => 1 [title] => Sub Sub Page ) ) ) ) [children] => Array ( [0] => Array ( [id] => 4 [parent_id] => 0 [title] => Another Parent Page [children] => Array ( ) ) ) ) )
以上がフラットデータベースの結果から多次元配列を再帰的に構築するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。