[英]PHP Group & add elements in array
I have this array: 我有这个数组:
Array(
[0] => Array(
[type] =>
[base] => 10.0
[amount] => 0
)
[1] => Array(
[type] => 15.0
[base] => 12.0
[amount] => 1.8
)
[2] => Array(
[type] => 15.0
[base] => 12.0
[amount] => 1.8
)
[3] => Array(
[type] => 2.0
[base] => 12.0
[amount] => 0.24
)
How can I get below array with php? 我怎样才能得到下面的数组与PHP? I need to group "types" adding "amount" & "amount", but omitting elements without type value
我需要对“类型”进行分组,添加“数量”和“数量”,但是要忽略没有类型值的元素
Array(
[0] => Array(
[type] => 15.0
[base] => 24.0
[amount] => 3.6
)
[1] => Array(
[type] => 2.0
[base] => 12.0
[amount] => 0.24
)
)
array_reduce
comes to the rescue: array_reduce
可以解决:
$result = array_reduce($array, function($memo, $item) {
if (!isset($item['type'])) return $memo;
if (!isset($memo['' . $item['type']])) { // first occurence
$memo['' . $item['type']] = $item;
} else { // will sum
$memo['' . $item['type']]['base'] += $item['base'];
$memo['' . $item['type']]['amount'] += $item['amount'];
}
return $memo;
}, array());
var_dump(array_values($result));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.