Php 多维数组中的和值?

Php 多维数组中的和值?,php,arrays,multidimensional-array,Php,Arrays,Multidimensional Array,我只是不知道如何在多维数组中求和和和回显值。这是我的数组,包含有关订单的信息 我需要对结果值求和,并返回一个统一的描述列表。我尝试过很多东西,但什么都没有,从来没有用过那种数组级别。这是一个包含两种不同产品并提供折扣的阵列 Array ( [0] => Array ( [ORDER_ID] => 35 [DISCOUNT_ID] => 18 [ORDER_COUPON_ID] =&g

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

我需要对结果值求和,并返回一个统一的描述列表。我尝试过很多东西,但什么都没有,从来没有用过那种数组级别。这是一个包含两种不同产品并提供折扣的阵列

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\u sum和array\u column

Array\u column从数组中的一列获取所有值,Array\u sum。。。总而言之

echo array_sum(array_column($arr, "RESULT_VALUE"));
此解决方案有效?

您可以使用它来获得结果。下面的代码将key$key的所有值相加,无论它们位于数组中的何处

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

echo $sum;

我试过很多东西,但都没用,从来没用过,是吗?这里有很多类似的问题,所以:,你说echo one united DESCR list是什么意思?数组中没有键,只有DESCR或DESCRlist@Andreas,我的意思是我需要回显带有键DESCR的单元格,它应该是这样的:折扣10%。。。。折扣10%…错误反转数组\u列参数谢谢!我会解决它。@Hazzy,我以为你会将$arr更改为数组名。你这么做了吗?@Andreas,当然是echo array\u sumarray\u column$res,RESULT\u VALUE;打印列$res[ORDER],DESCR;数组也是空的。谢谢,它的工作方式不正确,例如我做这个是为了观察值$键='RESULT_VALUE'$总和=0;数组_walk_recursive$res[ORDER][0],函数$v,$k,$key use&$sum{if$k===$key{echo$k.-.$v.;}},$key;echo$sum;回响我们得到的是:00-0结果值229.905 0-10%折扣229.91卢布。0-0结果值-70.796 0-10%折扣70.80卢布。0Oh,当我更改一个条件时,它会起作用,例如,如果$k==$key&&$k!==0,为什么答案中的条件是包含一个键为0的单元格?因为当与int-write f$k==$key比较时,php将字符串转换为零
$key = 'RESULT_VALUE';
$sum = 0;
array_walk_recursive ($array, 
         function($v, $k, $key) use (&$sum) { 
             if($k === $key) { $sum += $v;}}, 
         $key);

echo $sum;