我有两个阵列,比如
$a1 $b1
0 : A 10
1: B 10
2: A 15
3: A 20
4: B 05
5: c 25
现在我想以相同的方式计算它们,然后结果是A = 45,B = 15和C = 25
答案 0 :(得分:1)
$calc = array_fill_keys($a1,0);
foreach($a1 as $i => $key) {
$calc[$key] += $b1[$i];
}
$calc
是计算值数组:
[A] => 45,
[B] => 15
etc.
答案 1 :(得分:0)
我知道它已被回答并被接受,并且接受的答案更简单,更有效;但纯粹是因为我很想尝试一种不同的方法:
$a1 = array('A', 'B', 'A', 'A', 'B', 'c');
$b1 = array('10','10','15','20','05','25');
$sumArray = array();
foreach(array_unique($a1) as $key) {
$arrayElements = array_filter(
$a1,
function($value) use ($key) {
return $value == $key;
}
);
$sumArray[$key] = array_sum(
array_intersect_key(
$b1,
array_fill_keys(
array_keys($arrayElements),
NULL
)
)
);
}
var_dump($sumArray);