duandongji2231 2016-07-26 13:11
浏览 48
已采纳

按键对多维数组求和

I have read a lot of answers here on SO but havent been able to sort this out.

I have multidimensional array that looks like this:

Array

(
[0] => Array
    (
        [0] => 
        [1] => 655
    )

[1] => Array
    (
        [0] => IT-82
        [1] => 14
    )

[2] => Array
    (
        [0] => IT-21
        [1] => 5
    )

[3] => Array
    (
        [0] => IT-82
        [1] => 7
    )

[4] => Array
    (
        [0] => 
        [1] => 3
    )

[5] => Array
    (
        [0] => IT-21
        [1] => 4
    )

[6] => Array
    (
        [0] => 
        [1] => 3
    )

[7] => Array
    (
        [0] => IT-21
        [1] => 3
    )

[8] => Array
    (
        [0] => IT-72
        [1] => 7
    )

[9] => Array
    (
        [0] => IT-75
        [1] => 22
    )

[10] => Array
    (
        [0] => IT-75
        [1] => 3
    )
)

I would like to sum the values according to the keys ending with a single array like:

Array 
(
      => 661
IT-82 => 21
IT-21 => 12
IT-82 => 12
IT-72 => 7
IT-75 => 25
)

Tried with

foreach ($array as $k=>$subArray) {
    foreach ($subArray as $id=>$value) {
        $sumArray[$id]+=$value;
    }
}

but this only returned the sum of all the values.

Any help appreciated.

  • 写回答

2条回答 默认 最新

  • dtp0760 2016-07-26 13:20
    关注

    Try:

    $sumArray = array();
    foreach ($array as $k=>$subArray) { //loop through array
      if(isset($sumArray[$subArray[0]]))
        $sumArray[$subArray[0]] += $subArray[1]; // set 0th index as key and 1st as value and add value to current index
      else 
        $sumArray[$subArray[0]] = $subArray[1];
    }
    print_r($sumArray);
    

    Output:

    Array
    (
        [] => 661
        [IT-82] => 21
        [IT-21] => 12
        [IT-72] => 7
        [IT-75] => 25
    )
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 有赏,i卡绘世画不出
  • ¥15 如何用stata画出文献中常见的安慰剂检验图
  • ¥15 c语言链表结构体数据插入
  • ¥40 使用MATLAB解答线性代数问题
  • ¥15 COCOS的问题COCOS的问题
  • ¥15 FPGA-SRIO初始化失败
  • ¥15 MapReduce实现倒排索引失败
  • ¥15 ZABBIX6.0L连接数据库报错,如何解决?(操作系统-centos)
  • ¥15 找一位技术过硬的游戏pj程序员
  • ¥15 matlab生成电测深三层曲线模型代码