Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在php中对来自不同数组的相同元素求和?_Php_Arrays - Fatal编程技术网

如何在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;
    } 
 }