繁体   English   中英

多维数组中的总和值?

[英]Sum values in multidimensional array?

我只是不知道如何在多维数组中求和和回显值。 这是我的有关订单信息的数组。

我需要对RESULT_VALUE求和并回显一个联合的DESCR列表。 我尝试了很多事情,但是没有尝试,从未尝试过使用这种数组级别。 这是一个包含两个应用折扣的不同产品的数组。

Array
(
    [0] => Array
        (
            [ORDER_ID] => 35
            [DISCOUNT_ID] => 18
            [ORDER_COUPON_ID] => 0
            [COUPON_ID] => 
            [RESULT] => Array
                (
                    [BASKET] => Array
                        (
                            [617] => Array
                                (
                                    [RULE_ID] => 248
                                    [APPLY] => Y
                                    [RULE_DESCR_ID] => 248
                                    [ACTION_BLOCK_LIST] => Array
                                        (
                                            [0] => 0
                                        )

                                    [DESCR_DATA] => Array
                                        (
                                            [0] => Array
                                                (
                                                    [TYPE] => 2
                                                    [VALUE] => 10
                                                    [VALUE_TYPE] => P
                                                    [VALUE_ACTION] => D
                                                    [RESULT_VALUE] => 229.905
                                                    [RESULT_UNIT] => RUB
                                                )

                                        )

                                    [DESCR] => Array
                                        (
                                            [0] => discount 10% (229.91 rub.)
                                        )

                                    [DESCR_ID] => 248
                                    [BASKET_ID] => 617
                                    [MODULE] => catalog
                                    [PRODUCT_ID] => 10109
                                )

                            [618] => Array
                                (
                                    [RULE_ID] => 249
                                    [APPLY] => Y
                                    [RULE_DESCR_ID] => 249
                                    [ACTION_BLOCK_LIST] => Array
                                        (
                                            [0] => 0
                                        )

                                    [DESCR_DATA] => Array
                                        (
                                            [0] => Array
                                                (
                                                    [TYPE] => 2
                                                    [VALUE] => 10
                                                    [VALUE_TYPE] => P
                                                    [VALUE_ACTION] => D
                                                    [RESULT_VALUE] => 70.796
                                                    [RESULT_UNIT] => RUB
                                                )

                                        )

                                    [DESCR] => Array
                                        (
                                            [0] => discount 10% (70.80 rub.)
                                        )

                                    [DESCR_ID] => 249
                                    [BASKET_ID] => 618
                                    [MODULE] => catalog
                                    [PRODUCT_ID] => 10054
                                )

                        )

                )

            [ACTION_BLOCK_LIST] => 1
        )

您可以使用array_walk_recursive获得结果。 下面的代码将键$ key的所有值累加到数组中的任何位置

$key = 'RESULT_VALUE';
$sum = 0;
array_walk_recursive ($array, 
         function($v, $k, $key) use (&$sum) { 
             if($k === $key) { $sum += $v;}}, 
         $key);

echo $sum;

您可以使用array_sum和array_column。

Array_column从数组的一列中获取所有值,然后array_sum ...求和...

echo array_sum(array_column($arr, "RESULT_VALUE"));
Echo array_sum(array_column($array, 'RESULT_VALUE'));

此解决方案有效吗?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM