2012-10-19 173 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']; 
    } 

} 
相关问题