Php 多维关联数组的和

Php 多维关联数组的和,php,multidimensional-array,foreach,associative-array,Php,Multidimensional Array,Foreach,Associative Array,我想把上面的数组转换成下面这样的东西。我需要使用foreach还是可以使用array\u sum Array ( [Sum_1] => Array ( [0] => Array ( [e] => 1000001 [u] =>

我想把上面的数组转换成下面这样的东西。我需要使用foreach还是可以使用array\u sum

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 
                        ) 
                ) 
)  
(我想得到名为sum_1,sum_2,sum_3的每个部分的元素[a]的和)
谢谢你的帮助

您可以这样做:

Array 
    ( 
        [Sum_1] => 1330.00
        [Sum_2] => 110.00
        [Sum_3] => 444.00
     )  
在php 5.4之前:

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

你可以这样做:

Array 
    ( 
        [Sum_1] => 1330.00
        [Sum_2] => 110.00
        [Sum_3] => 444.00
     )  
在php 5.4之前:

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

使用
foreach
循环,您可以尝试以下操作

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

使用
foreach
循环,您可以尝试以下操作

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

别逼我了,我写的正是:)@xdazz我能够在模板本身上不使用数组进行求和。无论如何,谢谢你。我真的不明白你的方法。我知道array\u map和array\u sum是做什么的,但是我不能真正理解它们在代码中是如何使用的?你能解释一下吗,或者告诉我一个有用的来源?感谢you@ThiliniIW检查数组映射的工作方式将有所帮助。array_map-将回调应用于给定数组的元素“”可以从php 5.4中使用。我写的正是:)@xdazz我能够在模板本身上不使用数组进行求和。无论如何,谢谢你。我真的不明白你的方法。我知道array\u map和array\u sum是做什么的,但是我不能真正理解它们在代码中是如何使用的?你能解释一下吗,或者告诉我一个有用的来源?感谢you@ThiliniIW检查数组映射的工作方式将有所帮助。array_map-将回调应用于给定数组的元素“”可以从PHP5.4中使用