我有2个阵列:
$a=Array
(
[25] => 21.00
[33] => 63.00
[12] => 45.00
[14] => 12.00
[17] => 22.00
)
$b=Array
(
[0] => 24
[1] => 25
[3] => 14
)
我想只计算数组$ a的值,它们的键与数组$ b的值相差不多。 例如,在此示例中,输出将为130。 任何想法都将不胜感激。谢谢!
答案 0 :(得分:5)
$a = array(
25 => 21.00,
33 => 63.00,
12 => 45.00,
14 => 12.00,
17 => 22.00,
);
$b = array(24, 25, 14);
$result = array_sum(
array_diff_key(
$a,
array_flip($b)
)
);
var_dump($result);
答案 1 :(得分:0)
试试这个:
$sum = 0;
foreach($a as $arr => $value_a){
$find = 0;
foreach($b as $arr_b => $value_b){
if($arr == $value_b)
$find = 1;
}
if($find == 0)
$sum += $value_a
}
echo'sum: '.$sum;
答案 2 :(得分:0)
这可能是最易读的方式之一。这样做的目的是什么,因为有更有效的方法可以确保只需要一个循环。
$total = 0;
foreach($a as $k => $v){
$sum = true;
foreach($b as $kk => $vv){
if($vv == $k){
$sum = false;
}
}
if($sum){
$total += $v;
}
}