php如何对二维数组内相同的key的值相加

题目描述

如何对二维数组内相同的key的值相加

题目来源及自己的思路

把一个二维数组 相同的hid的sum相加
自己做的是

 $array=[];        foreach ($arr as $k=>$v){
                $array[$v['hid']][]=$v;
        }
        $list=[];        foreach ($array as $k=>$v){            foreach ($v as $k1=>$v1){
                $list[$k]+=$v1['sum'];
            }

        }

        dump($list);      出来 array(4) {[2] => int(6) [3] => int(7)[5] => int(6) [4] => int(5)

相关代码

// 请把代码文本粘贴到下方(请勿用图片代替代码)
就是把下面的转为 $list=[6,7,6,5];

$arr=[
        ['id'=>1,'hid'=>2,'sum'=>1],
        ['id'=>2,'hid'=>2,'sum'=>2],
        ['id'=>3,'hid'=>2,'sum'=>3],
        ['id'=>4,'hid'=>3,'sum'=>1],
        ['id'=>5,'hid'=>3,'sum'=>2],
        ['id'=>6,'hid'=>3,'sum'=>4],
        ['id'=>7,'hid'=>5,'sum'=>2],
        ['id'=>8,'hid'=>5,'sum'=>4],
        ['id'=>9,'hid'=>4,'sum'=>5]
    ];

}

你期待的结果是什么?实际看到的错误信息又是什么?

如何优化我的代码。我写的循环太多了。我想要的结果就是 相同的hid的sum相加


三国纷争
浏览 1825回答 1
1回答

FFIVE

<?php$arr&nbsp;=&nbsp;[ &nbsp;&nbsp;&nbsp;&nbsp;['id'&nbsp;=>&nbsp;1,&nbsp;'hid'&nbsp;=>&nbsp;2,&nbsp;'sum'&nbsp;=>&nbsp;1], &nbsp;&nbsp;&nbsp;&nbsp;['id'&nbsp;=>&nbsp;2,&nbsp;'hid'&nbsp;=>&nbsp;2,&nbsp;'sum'&nbsp;=>&nbsp;2], &nbsp;&nbsp;&nbsp;&nbsp;['id'&nbsp;=>&nbsp;3,&nbsp;'hid'&nbsp;=>&nbsp;2,&nbsp;'sum'&nbsp;=>&nbsp;3], &nbsp;&nbsp;&nbsp;&nbsp;['id'&nbsp;=>&nbsp;4,&nbsp;'hid'&nbsp;=>&nbsp;3,&nbsp;'sum'&nbsp;=>&nbsp;1], &nbsp;&nbsp;&nbsp;&nbsp;['id'&nbsp;=>&nbsp;5,&nbsp;'hid'&nbsp;=>&nbsp;3,&nbsp;'sum'&nbsp;=>&nbsp;2], &nbsp;&nbsp;&nbsp;&nbsp;['id'&nbsp;=>&nbsp;6,&nbsp;'hid'&nbsp;=>&nbsp;3,&nbsp;'sum'&nbsp;=>&nbsp;4], &nbsp;&nbsp;&nbsp;&nbsp;['id'&nbsp;=>&nbsp;7,&nbsp;'hid'&nbsp;=>&nbsp;5,&nbsp;'sum'&nbsp;=>&nbsp;2], &nbsp;&nbsp;&nbsp;&nbsp;['id'&nbsp;=>&nbsp;8,&nbsp;'hid'&nbsp;=>&nbsp;5,&nbsp;'sum'&nbsp;=>&nbsp;4], &nbsp;&nbsp;&nbsp;&nbsp;['id'&nbsp;=>&nbsp;9,&nbsp;'hid'&nbsp;=>&nbsp;4,&nbsp;'sum'&nbsp;=>&nbsp;5] ]; $result&nbsp;=&nbsp;[];foreach&nbsp;($arr&nbsp;as&nbsp;$item)&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;降低了对低版本的照顾 &nbsp;&nbsp;&nbsp;&nbsp;isset($result[$item['hid']])&nbsp;||&nbsp;$result[$item['hid']]&nbsp;=&nbsp;0; &nbsp;&nbsp;&nbsp;&nbsp;$result[$item['hid']]&nbsp;+=&nbsp;$item['sum']; } $result&nbsp;=&nbsp;array_values($result); var_dump($result);
打开App,查看更多内容
随时随地看视频慕课网APP