如果在php
中获取重复元素,则添加数组元素$a=[3.00,3.00,8.00,3.00,13.00]
$b=[0.11,0.45,0.22,0.90,0.44]
结果应该是:
$c=[3.00,8.00,13.00]
$d=[1.46(0.11+0.45+0.90),0.22,0.44]
答案 0 :(得分:2)
就像我不喜欢添加isset
逻辑一样,我创建了一个唯一键的数组,然后创建一个起始数组,其值为和值的0值。然后将初始数组与唯一数组匹配,并在...中添加值
$a=[3.00,3.00,8.00,3.00,13.00];
$b=[0.11,0.45,0.22,0.90,0.44];
$c = array_values(array_unique($a));
$d = array_fill(0, count($c), 0);
foreach ( $a as $key => $value ) {
$d[ array_search($value, $c) ] += $b[$key];
}
print_r($c);
print_r($d);
答案 1 :(得分:0)
你可以用循环来做到这一点,如下所示:
$C,D; //That be inizialite like array
for ($i = 0; $i <= count($A); $i++)
if (array_key_exists($A[$i], $C))
$D[array_search($A[$i], $C)]+=$B[$i];
else
{array_push($C,$A[$i]);
array_push($D,$B[$i]);
}
我不确定是否有效,但逻辑就是这样。
答案 2 :(得分:0)
<?php
$a = [3.00, 3.00, 8.00, 3.00, 13.00];
$b = [0.11, 0.45, 0.22, 0.90, 0.44];
$c = array();
$d = array();
foreach ($a as $index => $per_a) {
if (!in_array($per_a, $c)) {
array_push($c, $per_a);
array_push($d, $b[$index]);
}
else {
$pos = array_search($b[$index], $d);
$d[$pos] += $b[$index];
}
}
print_r($c);
print_r($d);