【发布时间】:2014-05-13 03:39:03
【问题描述】:
我有点困惑。我有以下数组:我正在尝试使用 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;
}
}
}
【问题讨论】:
-
为什么要用
RecursiveIterator来完成这个任务,而它可以通过简单的foreach循环直接解决? -
@raina77ow 我知道它可以我正在尝试学习 RecursiveIterator 类。同样从我读过的内容来看,大型阵列的 SPL 更快
-
看,当你只有钉子要处理的时候,你不会学会如何使用螺丝刀。 ) RecursiveIterator 最适合您必须处理复杂的层次结构 - 特别是树。查看this thread 了解有关此 SPL 功能如何发挥作用的非常详细的说明。
-
有道理感谢这个链接