Sum of multidimensional associative array PHP

杀马特。学长 韩版系。学妹 提交于 2019-12-24 11:17:41

问题


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!


回答1:


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);



回答2:


using foreach loop you can try this

$sums=array();
    foreach($ArrayOfSums as $Offset=>$ArrayOfResults){
        foreach($ArrayOfResults as $ResultOffset=>$Result){
            $sums[$Offset]+=$Result["a"];
        }
    }


来源:https://stackoverflow.com/questions/12311718/sum-of-multidimensional-associative-array-php

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!