$inventory = array(
array("fruit"=>"orange", "price"=>3),
array("fruit"=>"kiwi", "price"=>2),
array("fruit"=>"apple", "price"=>3),
array("fruit"=>"apple", "price"=>3),
array("fruit"=>"apple", "price"=>3),
array("fruit"=>"orange", "price"=>3),
array("fruit"=>"banana", "price"=>10),
array("fruit"=>"banana", "price"=>10),
);
//我想做的是遍历这个数组并为每个数组添加所有'价格' //唯一键'fruit',然后将它们排序
//前。我希望实现的输出是一个数组:
$sum_array = array("banana"=>"20", "apple"=>"9", "orange"=>"6", "kiwi"=>"2");
答案 0 :(得分:1)
好吧,只需按果实分组,然后对最终结果进行排序:
function groupFruits(&$result, $item)
{
$key = $item['fruit'];
@$result[$key] += $item['price'];
return $result;
}
$grouped = array_reduce($inventory, 'groupFruits', array());
arsort($grouped);
print_r($grouped);
另请参阅:array_reduce()
arsort()
<强>更新强>
当您在different versions of PHP中查看此代码时,您会看到一些疯狂的结果。