2014-02-26 125 views
0

我知道類似的問題之前已經問,但我不能得到解決方案,爲我工作,我真的使用多維數組foreach循環掙扎,仍然不能完全圍繞讓我的頭它。循環多維數組用foreach

我的數組$預約的結構如下:

Array ([#BOOKED#] => Array ([0] => Array ([id] => 1 [user_id] => 2 [class_id] => 3 [class_date] => 2014-03-03 00:00:00 [manual_booking] => 1 [booked_date] => 2014-02-26 00:00:00 [cancelled_date] =>) 
       [#RESERVE#] => Array ([0] => Array ([id] => 2 [user_id] => 2 [class_id] => 2 [class_date] => 2014-03-04 00:00:00 [manual_booking] => 1 [booked_date] => 0000-00-00 00:00:00 [cancelled_date] =>) 

這是我嘗試,我要去哪裏錯了?任何幫助將不勝感激接受,因爲將要解釋的foreach在真正的基本條件循環多維數組教程的任何鏈接,一切我發現要麼是缺乏細節或明顯的例子用的是什麼每個參數做解釋。非常感謝!

foreach ($bookings as $status => $record) { 
    echo $record['user_id']; 
    echo '<br>'; 
} 

回答

1

你幾乎擁有了:

​​

還是取決於你想要如何顯示它分成兩個單獨的foreach

foreach ($bookings['#BOOKED#'] as $record) { 
    echo $record['user_id']; 
    echo '<br>'; 
} 
foreach ($bookings['#RESERVE#'] as $record) { 
    echo $record['user_id']; 
    echo '<br>'; 
} 

取決於你使用這個頻率的頻率,如果你有其他類似的陣列,你可以使用一個函數,例如通過$bookings['#RESERVE#']

1

只是嘗試:

foreach ($bookings as $status => $records) { 
    foreach ($records as $record) { 
     echo $record['user_id']; 
     echo '<br>'; 
    } 
} 
+0

完美的,這是一個巨大的幫助!我真的需要了解更多關於嵌套foreach循環的知識,但很難找到很好的教程,儘管奇怪。非常感謝,非常感謝! – MKC

+0

事實上,我已經發現,當此輸出的單個元件即[「用戶ID」],我它需要輸出對於每個所述陣列seperately的頂層的 - #BOOKINGS#和#RESERVE#。我怎麼把它們分開? – MKC

1

我認爲一個多維數組作爲庫。在一個庫中,你有不同的區域來分隔主題 - 比如數組的頂層。然後你有不同的書籍案例分類每個主題 - 就像數組的第二級。然後是一個不同的架子(比方說作者) - 就像數組的第三層一樣。這是一種非常簡潔的方式來存儲和查找數據。您的多維數組(從你寫的)似乎是這樣的:

頂級:

#BOOKED# 
#RESERVE# 

二級:(我沒有親自了解爲什麼這個水平存在)

0 

第三層:

id 
user_id 
class_id 
class_date 
manual_booking 
booked_date 
cancelled_date 

要分開了數組的頂層,你可以使用一個條件語句,像這樣:

foreach ($bookings as $status => $record) { 
    if($status=="#BOOKED#") { 
     // i.e. do something for booked array 
     echo $record[0]['user_id']; 
    } else { 
     // i.e. do something for reserved array 
     echo $record[0]['user_id']; 
    } 
} 

想想擺脫那個2級的,雖然 - 它似乎並沒有必要,除非你不僅僅是那裏的零值。

+0

我背後使用的庫比喻它欣賞理論的解釋,感謝您抽出時間來回答,非常感謝! – MKC