对多维数组中的值求和

我想对以下数组的值求和我想通过累加它们来对相同的项目进行分组,输出格式也将是一个数组


Array

(

    [0] => Array

        (

            [0] => Array

                (

                    [0] => R421_FD03

                    [1] => 1

                )


            [1] => Array

                (

                    [0] => R421_FD03

                    [1] => 1

                )


        )


    [1] => Array

        (

            [0] => Array

                (

                    [0] => R421_FD03

                    [1] => 1

                )


            [1] => Array

                (

                    [0] => R421_FD02

                    [1] => 1

                )


        )


)

我测试了这段代码,但结果不是我正在等待的:


$sumArray = array();


        array_walk_recursive($data, function($item, $key) use (&$sumArray){

            $sumArray[$key] = isset($sumArray[$key]) ?  $item + $sumArray[$key] : $item;

        });

我等待的结果是这个


Array

(

    [0] => Array

        (

            [0] => R421_FD03

            [1] => 3

        )


    [1] => Array

        (

            [0] => R421_FD02

            [1] => 1

        )


     )

)


慕尼黑的夜晚无繁华
浏览 197回答 2
2回答

Qyouu

您可以使用array_mergesplat 运算符,然后遍历数组$merged = array_merge(...$arr);//splat operator$r = [];array_walk($merged, function($v,$k) use(&$r){ array_key_exists($v['0'], $r) ? ($r[$v[0]] += $v['1']) : ($r[$v[0]] = $v[1]);});print_r($r);结果 :-Array( [R421_FD03] => 3 [R421_FD02] => 1)
打开App,查看更多内容
随时随地看视频慕课网APP