【问题标题】:How to sum values of same key in array associative如何在数组关联中对相同键的值求和
【发布时间】:2016-08-25 15:49:23
【问题描述】:

在尝试对关联数组中相同的键值求和时,我没有做到这一点。我以为这会很容易,但事实并非如此,所以请......

我期待以下结果:

 1 -->(7) 
2 -->(14)

这是数组:

 $array = array( 1=>4, 2=>8, 1=>3, 2=>6, );

这是我从那以后尝试过的:

$sum= array();

foreach ($array as $key => $value){ $sum[$key] += $value;} print_r($sum);

无论如何,根本没有执行循环,因为它正在返回这个结果,

Array ( [1] => 3 [2] => 6 );

还有一个错误,

 Undefined offset: 1 

我想也许有一个 PHP 函数可以处理它,但我很乐意提供任何帮助。

【问题讨论】:

  • 我不知道的事情。刚刚根据您所说的找到了一种不同的方法,效果很好,感谢您的帮助

标签: php arrays sum key associative


【解决方案1】:

你想要的都是不可能的。数组不能有重复的键:

php > $arr = array(1=>2, 1=>500);
php > var_dump($arr);
array(1) {
  [1]=>
  int(500)  // hey! where'd "2" go?
}

如果你想在一个键中存储多个值,那么该键必须指向一个数组:

$arr = array();
$arr[1] = array(1, 500);
var_dump($arr);
php > var_dump($arr);
array(1) {
  [1]=>
  array(2) {
    [0]=>
    int(1)
    [1]=>
    int(500)
  }
}

【讨论】:

  • 嗨,马克,感谢您的支持。根据您的建议和@Paul Crovella 的建议,我尝试了一种不同的方法来尝试隔离数组中的每个键。得到了理想的结果,但仍然存在持续错误:未定义的偏移量:1 未定义的偏移量:每个键上的 7... 我所做的看起来像这样: $arr = array( array(1=> 500), array(1 => 20), 数组(7=> 5)); $arraySum = 数组(); foreach ($arr as $key => $arrChilds) { foreach ($arrChilds as $key2 => $value) { $arraySum[$key2]+= $value; } }print_r($arraySum);
  • 第二种方法效果很好,因为我在 stackoverflow 上发现了如何摆脱通知。只想再次说声谢谢。 stackoverflow.com/questions/1496682/…
猜你喜欢
  • 2022-11-03
  • 1970-01-01
  • 2021-01-06
  • 2012-12-21
  • 1970-01-01
  • 2017-11-15
  • 1970-01-01
  • 2018-06-30
  • 1970-01-01
相关资源
最近更新 更多