简体   繁体   English

PHP组并在数组中添加元素

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM