使用递归数组迭代器类的PHP

使用递归数组迭代器类的PHP,php,arrays,Php,Arrays,我有点困惑。我有以下数组:我试图使用STL迭代器循环遍历它,并返回Name=Dodge的任何数组的所有值之和。我注意到我不能像使用for each循环那样使用$cars['Price']。我怎么知道这辆车的价格 $cars = Array { array[0] { 'Name' => 'Dodge', 'Drive' => '4W', 'Price' => '15,000'

我有点困惑。我有以下数组:我试图使用STL迭代器循环遍历它,并返回Name=Dodge的任何数组的所有值之和。我注意到我不能像使用for each循环那样使用
$cars['Price']
。我怎么知道这辆车的价格

$cars = Array {

     array[0] {
               'Name' => 'Dodge',
               'Drive' => '4W',
               'Price' => '15,000'

              },
     array[1] {
               'Name' => 'Corolla',
               'Drive' => '2W',
               'Price' => '17,300'
               }
         ..
}
这是否正确:

try {
    $iter = new RecursiveArrayIterator($cars);

    // loop through the array
    $all_totals = array();
    foreach(new RecursiveIteratorIterator($iter) as $key => $value) 
    {

        if($key == 'Name' && $value == 'Dodge') 
        {
            //how to get the Price of the car?

            //push into totals array:
            $all_totals[$value] = $value;
        }

    }
}
为此使用
[array_keys()][1]

$keys = array_keys($array);
你可以试试这个

foreach($cars as $key=>$value){
  echo $value['Name']." has a price of ".$value['Price'];
}

当可以用简单的
foreach
循环直接解决这个问题时,为什么要使用
RecursiveIterator
来完成这个任务?@raina77现在我知道了,我正在尝试学习RecursiveIterator类。另外,从我所读到的资料来看,SPL对于大型阵列来说速度更快。请看,当你只有钉子要处理时,你不会学会如何使用螺丝刀。)递归迭代器最适合处理复杂的层次结构,尤其是树。查看有关此SPL功能如何有用的详细说明。有意义感谢此链接
Use this code for perticular Dodge car price.

$sumofDodgeCar = 0;

foreach($cars as $value){
    if($value['Name']=='Dodge') {
         echo $value['Name']." has a price of ".$value['Price'];
    $sumofDodgeCar = $sumofDodgeCar + $value['Price'];
    }
}

echo "All Dodge car Price Sum :".$sumofDodgeCar;