Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 当键不是另一个数组的值时,数组的和值_Php - Fatal编程技术网

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方法不正确,因此被删除。太多不可预知的结果我的数组差异/数组翻转方法不正确,因此被删除。太多不可预知的结果。我丢失了什么,很好。数组,我丢失了什么,很好。