如何对相同元素ID的数组的值求和 [英] How to sum values of the array of the same element id
本文介绍了如何对相同元素ID的数组的值求和的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想要数组元素的总和,它们具有相同的元素'Id'.我想获得不包含重复元素"id"的新数组.我的数组结构如下.
I want sum of the array element ,Which have same element 'Id'. and I want to get new array which does not containing duplicate element 'id'. My array structure is given below.
Array
(
[0] => Array
(
[id] => 693
[quantity] => 40
)
[1] => Array
(
[id] => 697
[quantity] => 10
)
[2] => Array
(
[id] => 693
[quantity] => 20
)
[3] => Array
(
[id] => 705
[quantity] => 40
)
)
我想获得预期的结果
Array
(
[0] => Array
(
[id] => 693
[quantity] => 60
)
[1] => Array
(
[id] => 697
[quantity] => 10
)
[2] => Array
(
[id] => 705
[quantity] => 40
)
)
推荐答案
尝试这个
<?php
$array = array(
array('id' => 693, 'quantity' => 40),
array('id' => 697, 'quantity' => 10),
array('id' => 693, 'quantity' => 20),
array('id' => 705, 'quantity' => 40),
);
$result = array();
foreach($array as $k => $v) {
$id = $v['id'];
$result[$id][] = $v['quantity'];
}
$new = array();
foreach($result as $key => $value) {
$new[] = array('id' => $key, 'quanity' => array_sum($value));
}
echo '<pre>';
print_r($new);
?>
您还可以执行以下操作:
You could also do the following:
<?php
$final = array();
foreach($array as $value) {
$id = $value['id'];
$filter = array_filter($array, function($ar) {
GLOBAL $id;
$valueArr = ($ar['id'] == $id);
return $valueArr;
});
$sum = array_sum(array_column($filter, 'quantity'));
$final[$id] = array('id' => $id, 'quantity' => $sum);
}
echo '<pre>';
print_r($final);
?>
这篇关于如何对相同元素ID的数组的值求和的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文