Php 多维数组中的聚合值

Php 多维数组中的聚合值,php,arrays,multidimensional-array,Php,Arrays,Multidimensional Array,从一开始,我就以以下方式列出了订单: ( [product_id] => 1094 [total_weight] => 0.0390 [qty_ordered] => 10.0000 [category_id] => 12 ) 我想要的是根据类别id

从一开始,我就以以下方式列出了订单:

                (
                    [product_id] => 1094
                    [total_weight] => 0.0390
                    [qty_ordered] => 10.0000
                    [category_id] => 12
                )
我想要的是根据类别id对总重量和订购数量的值求和

我现在使用foreach以下面的方式获得了数组。但我需要以某种方式聚合这些值

Array
(
    [14] => Array
        (
            [0] => Array
                (
                    [product_id] => 1099
                    [total_weight] => 0.0390
                    [qty_ordered] => 10.0000
                )
            [1] => Array
                (
                    [product_id] => 1095
                    [total_weight] => 0.0395
                    [qty_ordered] => 10.0000
                )
        )
    [12] => Array
        (
            [0] => Array
                (
                    [product_id] => 1094
                    [total_weight] => 0.0390
                    [qty_ordered] => 10.0000
                )
        )
    [15] => Array
        (
            [0] => Array
                (
                    [product_id] => 742
                    [total_weight] => 0.1250
                    [qty_ordered] => 1.0000
                )
        )
)
因此,理想情况下,我希望输出与以下内容类似,代码越少越好:

Array
(
    [14] => Array
        (
            [total_weight] => 0.0785
            [qty_ordered] => 20.0000
        )

    [12] => Array
        (
            [total_weight] => 0.0390
            [qty_ordered] => 10.0000
        )

    [15] => Array
        (
            [total_weight] => 0.1250
            [qty_ordered] => 1.0000
        )
)

我能用下面的方法把它分类

    foreach($retval as $val) {
        $return[$val['category_id']]['qty_ordered'] += $val['qty_ordered'];
        $return[$val['category_id']]['row_total'] += $val['row_total'];
    }

您忘记发布当前代码了