【问题标题】:add elements of associative array with same key添加具有相同键的关联数组的元素
【发布时间】:2016-06-29 22:10:52
【问题描述】:

我有这样的关联数组

 $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 意味着它只是计算子数组中的元素。 提前感谢您的帮助。

【问题讨论】:

  • 需要使用外键作为id。如果元素不存在,则将元素初始化为 0。
  • 我不明白,你能给我一个你在说什么的快速演示,
  • 请给我代码,我不知道怎么做

标签: php associative-array


【解决方案1】:

你可以这样做:

$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'
        ),
    )
);

【讨论】:

    猜你喜欢
    • 2017-03-24
    • 1970-01-01
    • 1970-01-01
    • 2021-12-09
    • 1970-01-01
    • 2017-06-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多