2012-08-07 67 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>";