Php 当键不是另一个数组的值时,数组的和值
我有两个阵列:Php 当键不是另一个数组的值时,数组的和值,php,Php,我有两个阵列: $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。 任何想法都将不胜感激。提前感谢 试试这个: $sum = 0; foreach
$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。
任何想法都将不胜感激。提前感谢 试试这个:
$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;
试试这个:
$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;
这可能是最具可读性的方式之一。这样做的目的是什么,因为有更有效的方法可以确保只需要一个循环
$total = 0;
foreach($a as $k => $v){
$sum = true;
foreach($b as $kk => $vv){
if($vv == $k){
$sum = false;
}
}
if($sum){
$total += $v;
}
}
这可能是最具可读性的方式之一。这样做的目的是什么,因为有更有效的方法可以确保只需要一个循环
$total = 0;
foreach($a as $k => $v){
$sum = true;
foreach($b as $kk => $vv){
if($vv == $k){
$sum = false;
}
}
if($sum){
$total += $v;
}
}
我的array_diff/array_flip方法不正确,因此被删除。太多不可预知的结果我的数组差异/数组翻转方法不正确,因此被删除。太多不可预知的结果。我丢失了什么,很好。数组,我丢失了什么,很好。