如何在键名相同时添加数组值?

时间:2013-07-01 22:35:22

标签: php

我在foreach循环中填充数组

foreach ($value as $key ){
   $array[$key[label]]= $key[name];
}

当标签相同时,它会将值写入该键。

问题:当键值相同时,我想添加值并存储到该键。有什么想法吗?

例如:

$key[name1]=5
$key[name2]=4
$key[name1]=3
then the $key[name1]=8(5+3)

3 个答案:

答案 0 :(得分:2)

在循环中使用isset检查:

e.g。

foreach($array as $key => $value) {
   if (isset($otherarray[$key])) {
        $otherarray[$key] += $value;
   } else {
        $otherarray[$key] = $value;
   }
}

答案 1 :(得分:0)

类似的东西:

foreach ($value as $key ) {
   if (isset($array[$key[label]]) {
      $array[$key[label]] += $key[name];
   } else {
      $array[$key[label]] = $key[name];
   }
}

哦......实际上你应该将label包装在引号内,或者它是一个变量,你应该在前面添加$。

答案 2 :(得分:0)

foreach ($value as $key ){
    if(!array_key_exists($key['label'], $array))
        $array[$key['label']] = 0;

    $array[$key['label']] += $key['name'];
}

假设值是整数,如示例所示。