0

各エントリをカテゴリに分割できるように、データベースから食品のリストをカテゴリ順に並べて取得したいと考えています。

このような..

$menu = array(
    'Appetizers' => array(
        'Chicken Tenders' => '$2.99',
        'Twisted Chips' => '$1.99'
    ),
    'Seafood' => array(
        'Bayou Tilapia' => '$4',
        'Grill Atlantic Salmon' => '$3.99'
    ),
    'Steaks & Combos' => array(
        'Cowboy Grande Sirloin' => '$7.99'
    )
        )

これが私がしたことです。

$db->Query("SELECT menuTitle,menuCategory,menuPrice FROM menu");
$menu = array();
while ($row = $db->Row()) {
    $a = array($row->menuCategory => array($row->menuTitle=>$row->menuPrice));
    array_push($menu,$a);
    }

うまくいかないようです。これを達成する方法を教えてください。

4

3 に答える 3

0

反復中に配列を常に再定義するため、ブロック内のコードはwhile正確には正しくないように見えます。$a

while ($row = $db->Row()) {
    $a[ $row->menuCategory ][ $row->menuTitle] = $row->menuPrice;
    array_push($menu,$a);
}

このように、配列に新しいキーのみを追加します。

于 2012-08-07T09:08:12.857 に答える
0
$db->Query("SELECT menuTitle,menuCategory,menuPrice FROM menu");
$menu = array(); $a = array();

while ($row = $db->Row()) {
    $a[$row->menuCategory ][$row->menuTitle] = $row->menuPrice;
}
array_push($menu,$a);

echo "<pre>";print_r($menu);echo "</pre>";
于 2012-08-07T09:14:27.050 に答える
0

交換:

$a = array($row->menuCategory => array($row->menuTitle=>$row->menuPrice));
array_push($menu,$a);

と:

$menu[$row->menuCategory][$row->menuTitle]=$row->menuPrice;
于 2012-08-07T09:06:21.177 に答える