Php 如何通过传递另一个数组元素来获取数组元素?

Php 如何通过传递另一个数组元素来获取数组元素?,php,arrays,Php,Arrays,我有一个数组跟踪 [0] => Array ( [month] => Oct [amount] => 1200.00 ) 通过传递[month]我如何获得[amount]如果您想要的月份==$arrayElement[$i]['month']]您必须循环数组并每次进行测试。两种选择: 循环: foreach ($array as $i) { if ($i['month'] == 'Oct') { echo $i['amount'

我有一个数组跟踪

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

通过传递
[month]

我如何获得
[amount]
如果您想要的月份==$arrayElement[$i]['month']]

您必须循环数组并每次进行测试。两种选择:

  • 循环:

    foreach ($array as $i) {
         if ($i['month'] == 'Oct') {
             echo $i['amount'];
         }
    }
    
  • 按月为数据编制索引:

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

  • 您必须迭代数组并搜索月值,或者将数组转换为
    month=>amount
    以直接访问。是的,您必须使用循环。数据结构在这方面是不幸的。如果您可以更改它,这将是最好的选择。第二个选项只有在每个条目的月份唯一时才有效。您总是可以创建一个
    month=>[amount,…]
    map,但这有点复杂。只需指出:),这应该足以让操作开始。完全正确,显然我在这里进行假设…:)
    foreach ($arr as $k=>$v) {
        if ($v['month']=='Oct') {
            echo $v['amount'];
        }
    }
    
    foreach ($arr as $k => $v) {
        if ($v['month'] == $needleMonth) {
            echo $v['amount'] . ' - that`s it';
            break;
        }
    }
    
    $selectedMonth = 'Oct';
    
    foreach($yourArray as $child){
    
        if($child['month'] == $selectedMonth){
            echo $child['amount'];
        }
    
    }