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