如何在php中对来自不同数组的相同元素求和?
我有这样的数组:如何在php中对来自不同数组的相同元素求和?,php,arrays,Php,Arrays,我有这样的数组:array('id'=>value,'id'=>value) 我需要得到给定密钥的总结果。在上面的示例中,如果要求id为3,则总和为0,如果要求id为5,则总和为2。我只能这样想: foreach($arrays as $array){ foreach( $array as $id=>$v){ if( $id == $asked ) $total = $total + $v; } } 不知何故,我想必须有一个有效的方法来做
array('id'=>value,'id'=>value)
我需要得到给定密钥的总结果。在上面的示例中,如果要求id为3,则总和为0,如果要求id为5,则总和为2。我只能这样想:
foreach($arrays as $array){
foreach( $array as $id=>$v){
if( $id == $asked )
$total = $total + $v;
}
}
不知何故,我想必须有一个有效的方法来做这项工作。我想学习。谢谢 使用:
不,这也是我能想到的最有效的方法。因为您正在将它们与嵌套数组进行匹配。请检查此项:@kech您发布了3次相同的评论。我唯一能想到的是,在循环遍历之前,确保数组中存在$ASQUED。@Barmar很抱歉,我正在使用我的手机,我提交了太多次评论。
foreach($arrays as $array){
foreach( $array as $id=>$v){
if( $id == $asked )
$total = $total + $v;
}
}
$key = 3;
$sum = array_reduce($arrays, function(&$memo, $item) use($key){
array_key_exists($key, $item) && $memo += $item[$key];
return $memo;
});
foreach($arrays as $array) {
$total += $array[$id];
}
$prec_array=end($arrays);
foreach($arrays as $array){
foreach($array as $id=>$v){
if(array_key_exists($id, $prec_array) )
$total[$id] += $v + $prec_array[$id] ;
$prec_array = $array;
}
}