-1

我在 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)
4

3 回答 3

2

在循环内使用 isset 检查:

例如

foreach($array as $key => $value) {
   if (isset($otherarray[$key])) {
        $otherarray[$key] += $value;
   } else {
        $otherarray[$key] = $value;
   }
}
于 2013-07-01T22:37:21.413 回答
0

就像是:

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

哦...实际上你应该或包含label在引号内,或者它是一个变量,你应该在 $.

于 2013-07-01T22:37:45.953 回答
0
foreach ($value as $key ){
    if(!array_key_exists($key['label'], $array))
        $array[$key['label']] = 0;

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

假设值是您的示例中的整数。

于 2013-07-01T22:38:01.287 回答