如何对二维数组的每一行的子数组元素求和。
[
'Item 1' => [8, 5, 4],
'Item 2' => [24, 4],
'Item 3' => [23, 4],
]
每行可以合并为一个包含其原始值之和的元素吗?
[
'Item 1' => [17],
'Item 2' => [28],
'Item 3' => [27],
]
我之前尝试使用
array_merge_recursive()
将相同键的 2 个数组合并在一起,但现在我想将它们的元素添加在一起,这样它们就只有元素 [0]
。
您可以使用 array_map 和 array_sum 来实现您的目标:
$array = array('Item1' => array(1, 3), 'Item2' => array(3, 4));
$array = array_map(function($item) {
return array_sum($item);
}, $array);
echo '<pre>';
var_dump($array);
echo '</pre>';
结果将是:
array(2) {
["Item1"]=>
int(4)
["Item2"]=>
int(7)
}
如果您确实需要结果是一个包含各项之和的数组,则将返回更改为:
return array(array_sum($item));
也许你可以这样走很长的路
foreach($array as $key => $element){
$sum = 0;
foreach($element as $value){
$sum += $value;
}
$result[$key][0] = $sum;
}
基本上像这样,您将浏览数组的每个元素,并创建所需元素的总和