多维关联数组PHP的总和 [英] Sum of multidimensional associative array PHP

查看:171
本文介绍了多维关联数组PHP的总和的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

 数组

[Sum_1] =>数组

[0] =>数组

[e] => 1000001
[u] => Test1
[a] => 775.00

[1] => Array

[e] => 26
[u] => Test2
[a] => 555.00


[Sum_2] => Array

[0] => Array

[e] => 1000001
[u] => Test1
[a] => 110.00


[Sum_3] =>数组

[0] =>数组

[e] => 1000001
[u] => Test1
[a] => 444.00



我想把上面的数组转换成下面的样子。

 数组

[Sum_1])是否需要使用foreach或array_sum可以做到这一点? => 1330.00
[Sum_2] => 110.00
[Sum_3] => 444.00

(我想得到Sum_1,Sum_2,Sum_3每个部分的元素[a]的总和
感谢您的帮助!
<你可以这样做:

  $ ret = array_map  (函数($ val){
return array_sum(array_map(function($ val){
return $ val ['a'];
},$ val));
},$ array);

在php 5.4之前:

 函数a_getter($ val){
return $ val ['a'];
}
$ ret = array_map(function($ val){
return array_sum(array_map('a_getter',$ val));
},$ array);


Array 
( 
    [Sum_1] => Array 
                ( 
                    [0] => Array 
                        ( 
                            [e] => 1000001 
                            [u] => Test1 
                            [a] => 775.00 
                        ) 
                    [1] => Array 
                        ( 
                            [e] => 26 
                            [u] => Test2 
                            [a] => 555.00 
                        ) 
                ) 
    [Sum_2] => Array 
                ( 
                    [0] => Array 
                        ( 
                            [e] => 1000001 
                            [u] => Test1 
                            [a] => 110.00 
                        ) 
                ) 
    [Sum_3] => Array 
                ( 
                    [0] => Array 
                        ( 
                            [e] => 1000001 
                            [u] => Test1 
                            [a] => 444.00 
                        ) 
                ) 
)  

I want to convert above array to something like below. Do I need to use a foreach or can array_sum do this?

Array 
    ( 
        [Sum_1] => 1330.00
        [Sum_2] => 110.00
        [Sum_3] => 444.00
     )  

(I want to get the sum of element [a] of each section named Sum_1, Sum_2, Sum_3) Thanks for your help!

解决方案

You could do like this:

$ret = array_map(function($val) {
  return array_sum(array_map(function($val) {
     return $val['a'];
  }, $val));
}, $array);

Prior to php 5.4:

function a_getter($val) {
    return $val['a'];
}
$ret = array_map(function($val) {
    return array_sum(array_map('a_getter', $val));
}, $array);

这篇关于多维关联数组PHP的总和的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆