dongshai8330 2016-06-02 06:05
浏览 7
已采纳

如何找到关联数组的总和

i have an array like this

$sales = array('FIRST'=>array('RED'=>array(9,3),'GREEN'=>array(4,5,8,2)), 
'SECOND'=>array('RED'=>array(3,5,5,2),'YELLOW'=>array(4,2,5)),
'THIRD'=>array('BLUE'=>array(1,2,4),'RED'=>array(9,4,6)), 
'FOUR'=>array('BLUE'=>array(2,3,3,5),'BLACK'=>array(4,5,8,9)));

And i have to find the total sales of each color in the array.

The result array should be like

Array('RED'=>46,'GREEN'=>19, ...)
  • 写回答

5条回答 默认 最新

  • drkrsx3135168 2016-06-02 06:13
    关注

    Use array_sum inside foreach:

    $sales = array('FIRST'=>array('RED'=>array(9,3),'GREEN'=>array(4,5,8,2)), 
    'SECOND'=>array('RED'=>array(3,5,5,2),'YELLOW'=>array(4,2,5)),
    'THIRD'=>array('BLUE'=>array(1,2,4),'RED'=>array(9,4,6)), 
    'FOUR'=>array('BLUE'=>array(2,3,3,5),'BLACK'=>array(4,5,8,9)));
    
    $arr = [];
    
    foreach ($sales as $value) {
        foreach ($value as $key => $val) {
            if(array_key_exists($key, $arr)){
                $arr[$key] += array_sum($val);
            } else {
                $arr[$key] = array_sum($val);
            }
        }
    }
    
    print_r($arr);
    

    Result:

    Array
    (
        [RED] => 46
        [GREEN] => 19
        [YELLOW] => 11
        [BLUE] => 20
        [BLACK] => 26
    )
    

    Demo

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?