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 )
(Я хочу получить сумму элемента [a] каждого раздела с именем Sum_1, Sum_2, Sum_3) Спасибо за вашу помощь!
Вы можете сделать так:
$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);
используя цикл foreach
вы можете попробовать это
$sums=array(); foreach($ArrayOfSums as $Offset=>$ArrayOfResults){ foreach($ArrayOfResults as $ResultOffset=>$Result){ $sums[$Offset]+=$Result["a"]; } }