此问题已在此处有答案:
Group 2d array's row data by one column and sum another column within each group to produce a reduced 2d array(3个答案)
6个月前关闭。
我有一个多数组,其中有一些重复的值是相同的名称(名称是一个元素)
我想对每个同名数组的数量求和,然后取消设置第二个数组
示例:
<?php
$Array=array(
0=>array("name"=>"X","QTY"=>500),
1=>array("name"=>"y","QTY"=>250),
2=>array("name"=>"X","QTY"=>250)
);
?>
现在我想对重复的值求和,如下所示。
结果:
<?php
$Array=array(
0=>array("name"=>"X","QTY"=>750),
1=>array("name"=>"y","QTY"=>250)
);
?>
已更新
我发现这个函数在数组中搜索,foreach和另一个循环也不起作用
<?php
function search($array, $key, $value)
{
$results = array();
if (is_array($array)) {
if (isset($array[$key]) && $array[$key] == $value) {
$results[] = $array;
}
foreach ($array as $subarray) {
$results = array_merge($results, search($subarray, $key, $value));
}
}
return $results;
}
?>
5条答案
按热度按时间gwo2fgha1#
试试这个最简单的,希望对你有帮助。
Try this code snippet here
kq4fsx7k2#
这个问题是
array_reduce()
的一个典型用法:oalqel3c3#
var_export($result);
:g6baxovj4#
试试这个,检查**live demo**。
bvjveswy5#
您可以通过创建一个以
name
为键的数组,然后迭代所有值并将它们相加来实现这一点,结果如下:Try the code here
如果你想改变旧的数组,可以使用这样的函数:
旧阵列将被新阵列覆盖。