2012-08-07 69 views
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); 
    } 

它似乎没有工作。你能否建议如何实现这一目标?

+0

var_dump($ menu);什么?显示 – 2012-08-07 09:03:45

+0

尝试$ menu [$ row-> menuCategory] ​​[$ row-> menuTitle] = $ row-> menuPrice;而不是array_push和$ a = – Waygood 2012-08-07 09:04:31

回答

0

取代:

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

与:

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

哇,我一直试图做几个小时。非常感谢:D – Rik 2012-08-07 09:11:38

0

while块中的代码是不完全似乎正确的,因为你总是重新定义$a阵列而迭代。

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

这样,您只会将新密钥追加到数组中。

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>";