两个数组相同键的元素求和

5

你好,我有两个数组如下:

 array(a) {  [0]=> array(2) { ["count"]=> string(2) "22" ["hour"]=> string(1) "0" }
             [1]=> array(2) { ["count"]=> string(2) "17" ["hour"]=> string(1) "1" } 
             [2]=> array(2) { ["count"]=> string(2) "22" ["hour"]=> string(1) "2" } 
             [3]=> array(2) { ["count"]=> string(2) "15" ["hour"]=> string(1) "3" } 
             [4]=> array(2) { ["count"]=> string(2) "15" ["hour"]=> string(1) "4" }
            }

我有第二个数组,其中包含不同数量的值

 array(b) {  [0]=> array(2) { ["count"]=> string(2) "12" ["hour"]=> string(1) "0" }
             [1]=> array(2) { ["count"]=> string(2) "36" ["hour"]=> string(1) "1" } 
             [2]=> array(2) { ["count"]=> string(2) "59" ["hour"]=> string(1) "2" } 
             [3]=> array(2) { ["count"]=> string(2) "5"  ["hour"]=> string(1) "3" } 
             [4]=> array(2) { ["count"]=> string(2) "27" ["hour"]=> string(1) "4" }
            }

请告诉我如何获取两个数组中“count”的总和,并得到一个新数组,例如:

 array(c) {  [0]=> array(2) { ["count"]=> string(2) "34" ["hour"]=> string(1) "0" }
             [1]=> array(2) { ["count"]=> string(2) "53" ["hour"]=> string(1) "1" } 
             [2]=> array(2) { ["count"]=> string(2) "81" ["hour"]=> string(1) "2" } 
             [3]=> array(2) { ["count"]=> string(2) "20"  ["hour"]=> string(1) "3" } 
             [4]=> array(2) { ["count"]=> string(2) "42" ["hour"]=> string(1) "4" }
            }

谢谢。


你目前有什么进展? - jeroen
请查看PHP手册中的数组函数。array_map()是一个不错的起点。http://php.net/array_map - dnagirl
他的意思是你不能免费得到答案。你的问题很直接,因此Google和PHP手册应该是你的第一站。你想要我们的努力,也请展示你自己的努力。 - dnagirl
你尝试过什么?我原本想写我们不在这里为你做工作,但似乎情况并非如此... - jeroen
合并/求和多维数组 PHP - LF00
4个回答

2
$result_array = array() ;

for ($i = 0, $length = count($a_array) ; $i < $length ; $i++){
  $result_array[$i] = $a_array[$i] ;
  $result_array[$i]["count"] += $b_array[$i]['count'] ;  
}

var_dump($result_array) ;

0

试试这个

$count1 = array_count_values($array1);

$count1 = array_count_values($array2);

$count = $count1 + $count2;

0
$sum = array();
foreach($array1 as $k=>$v) {
  foreach($array2 as $k1=>$v1) {
    if($v['hour'] == $v1['hour']) {
      $sum[] = array('count'=> ($v['count'] == $v1['count']), 'hour' => $v['hour']);
    }
  }
}

应该给你一个新的数组 $sum,并符合你指定的格式。我的假设是你的前两个数组分别叫做 $array1 和 $array2。希望有所帮助。

0
//new array to hold answers
$array_results=array();

//loop through first array
foreach ($array_first as $key=>$v){

//use key of current element to get corresponding value from second array
//add them together and add into combined array
$array_results[]=$v['count']+$array_second[$key]['count'];

}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接