[英]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.