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

上記の配列を以下のようなものに変換したい。foreach を使用する必要がありますか、それとも array_sum でこれを行うことができますか?

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

(Sum_1、Sum_2、Sum_3という名前の各セクションの要素[a]の合計を取得したい)助けてくれてありがとう!

4

2 に答える 2

6

あなたはこのようにすることができます:

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

PHP 5.4 より前:

function a_getter($val) {
    return $val['a'];
}
$ret = array_map(function($val) {
    return array_sum(array_map('a_getter', $val));
}, $array);
于 2012-09-07T04:32:47.667 に答える
1

foreachループを使用すると、これを試すことができます

$sums=array();
    foreach($ArrayOfSums as $Offset=>$ArrayOfResults){
        foreach($ArrayOfResults as $ResultOffset=>$Result){
            $sums[$Offset]+=$Result["a"];
        }
    }
于 2012-09-07T04:41:17.137 に答える