Stackoverflow 上有很多关于如何获取多维关联数组并在其中求和值的很好的问答。不幸的是,我找不到一个没有丢失键名的。
例如:
$arr=array(
array('id'=>'1', 'amount'=>'5'),
array('id'=>'1', 'amount'=>'5'),
array('id'=>'2', 'amount'=>'1'),
array('id'=>'2', 'amount'=>'3')
);
我希望得到的数组看起来像这样:
$result=array(
array('id'=>'1', 'amount'=>'10'),
array('id'=>'2', 'amount'=>'4')
);
不幸的是,我唯一能弄清楚该怎么做的是:
$result = array();
foreach($arr as $amount){
if(!array_key_exists($amount['id'], $arr))
$result[$amount['id']] =0;
$result[$amount['id']] += $amount['amount'];
}
当echo'd
如下产生(注意缺少键的单词“id”和“amount”):
foreach($result as $id => $amount){
echo $id."==>".$amount."\n";
}
1==>10
2==>4