2012-07-30 87 views
5

我有輸出一個這樣的數組:PHP - 二維數組 - 循環訪問數組鍵並檢索它們的值?

1 => 
array 
    'quantity' => string '2' (length=1) 
    'total' => string '187.90' (length=6) 

2 => 
array 
    'quantity' => string '2' (length=1) 
    'total' => string '2,349.90' (length=8) 

我想通過每個陣列鍵環和檢索組3倍與它們相關的值,像這樣(其不工作)的:

foreach($orderItems as $obj=>$quantity=>$total) 
{ 
    echo $obj; 
    echo $quantity; 
    echo $total; 
} 

有人能夠給出一些建議,說明我會如何完成這個任務,甚至是一個更好的方式讓我去完成這個任務。任何與此相關的信息,包括可能涵蓋此教程的鏈接,都將不勝感激。謝謝!!

+1

請注意,「值」不是「1」和「2」; KEYS是1和2 - 而與鍵1和2相關的值是包含「quantity」和「total」的對象。 – 2014-07-15 12:49:00

回答

5
foreach($orderItems as $key => $obj) 
{ 
    echo $key; 
    echo $obj['quantity']; 
    echo $obj['total']; 
} 

使用上述。

+0

感謝您的輸入,我將如何獲取關鍵值tho?在我的例子中,它將分別是1和2。 – 2012-07-30 12:17:10

+0

對不起,請參閱我更新的答案。 – Gavin 2012-07-30 12:20:07

2

您需要多讀一些forEach()的文檔,因爲您的語法和理解有些不正確。

$arr = array(
    array('foo' => 'bar', 'foo2', 'bar2'), 
    array('foo' => 'bar', 'foo2', 'bar2'), 
); 
foreach($arr as $sub_array) { 
    echo $sub_array['foo']; 
    echo $sub_array['bar']; 
} 

forEach()迭代地傳遞數組變量的每個鍵 - 在上述情況下,$sub_array(一個合適的名稱,因爲你的數組包含子陣列)。所以在循環體內,就是你需要詢問。

+0

感謝您的意見,因爲非常感謝。是的,你對文檔也是正確的。但在我的例子中,我也使用了'$ obj'。是否有可能檢索這個值?請參閱上面答案中的評論。 – 2012-07-30 12:18:06

+0

那麼你的'forEach'語法是錯誤的,所以我很難準確地使用你的東西。這聽起來像你想使用'$ obj'而不是'$ sub_array'。我應該認爲我的例子很容易適應你的目的。如果您明確要我編輯以顯示此內容,請告訴我。 – Utkanos 2012-07-30 12:20:47