douzi4724 2016-08-25 07:49
浏览 81
已采纳

如何在数组关联中对相同键的值求和

I'm not getting this right when trying to sum values of keys that are same within an associative array. I thought it's gonna be easy task, but it ain't the case so please...

I'm expecting following result:

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

Here's the array:

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

Here's what i tried since:

$sum= array();

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

Anyway, there's no loop performed at all, since it's returning this result,

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

and an error,

 Undefined offset: 1 

I thought maybe there's a PHP function to handle it, but I'll be glad for any help.

  • 写回答

1条回答 默认 最新

  • duanji8615 2016-08-25 07:53
    关注

    What you want is impossible. Arrays cannot have duplicate keys:

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

    If you want to store multiple values in a single key, then that key has to point to an array:

    $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)
      }
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
编辑
预览

报告相同问题?

手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部