将行划分为维数组

时间:2012-08-07 09:00:55

标签: php arrays

我希望按类别将数据库中的食物列表按顺序排列,以便我可以将每个条目拆分为类别。

喜欢这个..

$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);
    }

它似乎不起作用。你能告诉我如何实现这个目标吗?

3 个答案:

答案 0 :(得分:0)

取代:

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

使用:

$menu[$row->menuCategory][$row->menuTitle]=$row->menuPrice;

答案 1 :(得分:0)

while块中的代码看起来并不完全正确,因为您在迭代时总是重新定义 $a数组。

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

这样,您只需将新键附加到数组中。

答案 2 :(得分: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>";