私は現在、PDOのfetchAll()関数を使用してデータベースからメニューデータを取得しています。以下の構造の配列へのクエリ結果の各行を置くそうする:重複した値を持つMySQL結果から多次元のネストした配列を作成する(PHP)
Array (
[MenuName] => Main Menu
[MenuId] => mmnlinlm08l6r7e8ju53n1f58
[Section] => Array (
[SectionId] => eq44ip4y7qqexzqd7kjsdwh5p
[SubmenuName] => Salads & Appetizers
[Items] => Array (
[ItemName] => Tomato Salad
[Description] => Cucumbers, peppers, scallions and cured tuna
[Prices] => Array (
[PriceId] => xksjslkajiak1
[Price] => $7.00)
)
[SectionId] => xlkadsj92laada9082lkas
[SubmenuName] => Entrees
[Items] => Array (
[ItemName] => Portabello Carpaccio
[Description] => Dried tomatoes, pin nuts, mahon cheese
[Prices] => Array (
[PriceId => alkadh29189s09
[Price] = $8.00)
)
)
)
:
Array (
[0] => Array (
[MenuId] => mmnlinlm08l6r7e8ju53n1f58
[MenuName] => Main Menu
[SectionId] => eq44ip4y7qqexzqd7kjsdwh5p
[SubmenuName] => Salads & Appetizers
[ItemName] => Tomato Salad
[Description] => Cucumbers, peppers, scallions and cured tuna
[Price] => $7.00)
[1] => Array (
[MenuId] => mmnlinlm08l6r7e8ju53n1f58
[MenuName] => Main Menu
[SectionId] => xlkadsj92laada9082lkas
[SubmenuName] => Entrees
[ItemName] => Portabello Carpaccio
[Description] => Dried tomatoes, pin nuts, mahon cheese
[Prices] => $18.00)
)
...etc.
解析の理由から、私は、配列なし重複値と入れ子構造に表示されたいと思います
n00bプログラマとして、私はこの新しい多次元配列を作成する方法を理解しようとしている最後の日に私の頭脳を悩ましてきました。 foreachステートメントと参照を入れ子にしなければならないかもしれないようですが、動かすのに苦労しました。
どのように私はそうすることができます知っていますか?
があなたのデータ厳密に階層的で何をしたいあなたはそれを作ることができるだけの小さな変更で
探しているもの?言い換えれば、項目は常にサブメニューにグループ化され、サブメニューはセクションにグループ化され、セクションはメニューにグループ化されますか? もしそうなら、あなたのSQLクエリでそれらを(メニュー、セクション、サブメニュー)並べ替え、結果を繰り返しながら、各レベルが変更されていないことを確認して配列を追加してください。 – Aerik
こんにちはAerik、はい、各項目は常にサブメニューにグループ化され、各サブメニューはメニューにグループ化されます。私のSQL結果は、このように順序付けされているので、たとえば、メインメニュー>前菜のすべての項目は一緒にグループ化されます。 – idubs11