下面的代码组合了两个数组,并对相同的值进行了求和。
所以指纹会是
Array
(
[1] => 30
[2] => 30
[3] => 40
)但所期望的结果是
Array
(
[1] => 15
[2] => 30
[3] => 40
)因为(10+20)/2是我要找的。
如何编辑代码来实现这一点?
$ids = Array(1, 1, 2, 3);
$quants = Array(10, 20, 30, 40);
$a = array_unique($ids);
$a = array_combine($a, array_fill(0, count($a), 0));
foreach($ids as $k=>$v) {
$a[$v] += $quants[$k];
}
print_r($a);发布于 2017-09-06 21:04:06
也许这能帮上忙
$ids = Array(1, 1, 2, 3);
$quants = Array(10, 20, 30, 40);
$a = array_unique($ids);
$a = array_combine($a, array_fill(0, count($a), 0));
$x = array_unique($ids);
$count_map = [];
foreach ($x as $temp) {
$count_map[$temp] = 0;
}
foreach($ids as $k=>$v) {
$count_map[$v] = $count_map[$v] + 1;
$a[$v] += $quants[$k];
$a[$v] = $a[$v]/$count_map[$v];
}
print_r($a);https://stackoverflow.com/questions/46084169
复制相似问题