添加具有相同键的关联数组的元素

add elements of associative array with same key

我有这样的关联数组

 $min_stats=
 array(2) 
{ 
[0]=> array(3) 
    { 
        ["minute"]=> object(MongoInt64)#13 (1) 
             { 
                ["value"]=> string(8) "10"
             } 
        ["add"]=> object(MongoInt64)#14 (1) 
            {
                 ["value"]=> string(1) "9"
            }
         ["tag"]=> object(MongoInt64)#15 (1) 
            {       
                ["value"]=> string(1) "4"
            }
     }
 [1]=> array(3) 
    { 
        ["minute"]=> object(MongoInt64)#13 (1) 
             { 
                ["value"]=> string(8) "11"
             } 
        ["add"]=> object(MongoInt64)#14 (1) 
            {
                 ["value"]=> string(1) "9"
            }
         ["tag"]=> object(MongoInt64)#15 (1) 
            {       
                ["value"]=> string(1) "5"
            }
    } 
} Array

现在我想把数组中的所有键值对组合起来得到一个数组。 结果数组应该是

array(11) 
    { 
        ["minute"]=> int(21) 
        ["add"]=> int(18) 
        ["tag"]=> int(9) 
     } Array

所以我写的是

foreach ($min_stats as $k=>$subArray) {
          foreach ($subArray as $id=>$value) {
            $sumArray[$id]+=$value;
          }
        }

但它没有给我正确的结果,我不知道我做错了什么? $value 即将到来,因为 2 意味着它只计算子数组中的元素。 在此先感谢您的帮助。

你可以这样做:

$finalArr = array();
foreach($array as $k1 => $v1){
    foreach($v1 as $k2=>$v2){
        if(!isset($finalArr[$k2])){
            $finalArr[$k2] = 0;
        }
        $finalArr[$k2] += $v2['value'];
    }
}

print_r($finalArr);

输出:

Array
(
    [minute] => 21
    [add] => 18
    [tag] => 9
)

用于测试的简单复制数组:

$array = array(
    array(
        'minute' => array(
            'value' => '10'
        ),
        'add' => array(
            'value' => '9'
        ),
        'tag' => array(
            'value' => '4'
        ),
    ),
    array(
        'minute' => array(
            'value' => '11'
        ),
        'add' => array(
            'value' => '9'
        ),
        'tag' => array(
            'value' => '5'
        ),
    )
);