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

代替:

$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 回答
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 回答