2012-10-19 242 views
0

我有一個數組遵循如何通過傳遞另一個數組元素來獲取數組元素?

[0] => Array 
(
    [month] => Oct 
    [amount] => 1200.00 
) 

,我如何通過傳遞[month]

+0

使用'for'循環。 –

+0

你必須迭代數組並搜索month值,或者將數組轉換爲'month => amount'來直接訪問。 –

+0

是的,你必須使用循環。數據結構是不幸的。如果你可以改變它,這將是最好的選擇。 – Flo

回答

0

你必須要循環數組,如果每次測試得到[amount]你想要的一個月== $ arrayElement [$ i] [ 'month']

6

你不知道。有兩個選項:

  1. 循環:

    foreach ($array as $i) { 
        if ($i['month'] == 'Oct') { 
         echo $i['amount']; 
        } 
    } 
    
  2. 指數數據按月:

    $array = array_combine(array_map(function($i) { return $i['month']; }, $array), 
             $array); 
    echo $array['Oct']['amount']; 
    
+0

如果每個條目的月份都是唯一的,則第二個選項纔有效。你總是可以創建一個'month => [amount,...]'地圖,但這有點複雜。只是指出:),它應該足以讓OP開始。 –

+0

完全正確,顯然我在這裏工作假設...... :) – deceze

0
foreach ($arr as $k=>$v) { 
    if ($v['month']=='Oct') { 
     echo $v['amount']; 
    } 
} 
+0

對!錯誤的語言! – Tim

1
foreach ($arr as $k => $v) { 
    if ($v['month'] == $needleMonth) { 
     echo $v['amount'] . ' - that`s it'; 
     break; 
    } 
} 
+0

+1包括休息! – Nick

0
$selectedMonth = 'Oct'; 

foreach($yourArray as $child){ 

    if($child['month'] == $selectedMonth){ 
     echo $child['amount']; 
    } 

} 
相關問題