PHP 比较数组

PHP compare arrays

我有两个数组。 $arrayOld$arrayNew 我想比较这些数组,并且只比较 select 不在 $arrayNew.

中的值

我不想要 $arrayNew 中的值。所以我认为 array_diff() 不会帮助我。

$arrayOld = [1, 2, 3, 4, 5]
$arrayNew = [1, 4, 5, 6, 7]

所以它只需要 return 23 而不是 67.

使用array_diff,来完成这个。由于您需要区分数组并需要来自旧数组的数据,因此您需要使用旧数组作为 array_diff.

的第一个参数

Note: Array diff only returns from the first array which is not in second array.

$arrayOld = [1, 2, 3, 4, 5];
$arrayNew = [1, 4, 5, 6, 7];

$n = array_diff($arrayOld, $arrayNew);

print_r($n);

结果: Online Check

Array
(
    [1] => 2
    [2] => 3
)

如果您需要输出数组的新键,只需使用 array_values。新密钥从0开始。

$arr = array_values($n);

使用下面的代码

$arrayOld = [1, 2, 3, 4, 5];
$arrayNew = [1, 4, 5, 6, 7];
print "<pre>";
print_r(array_diff($arrayOld, $arrayNew));

输出:

Array
(
[1] => 2
[2] => 3
)

使用array_diff函数

$arrayOld = array(1, 2, 3, 4, 5);
$arrayNew = array(1, 4, 5, 6, 7);

print_r(array_diff($arrayOld, $arrayNew));

使用此代码。

$arrayOld = array(1, 2, 3, 4, 5);
$arrayNew = array(1, 4, 5, 6, 7);

print_r(array_diff($arrayOld, $arrayNew));

$compare = array();
$i=1;
foreach($arrayOld as $k=>$v){
    if(!in_array($v, $arrayNew)){
        $compare[$i] = $v;
        $i++;
    }
}

$i=$i;
foreach($arrayNew as $k=>$v){
    if(!in_array($v, $arrayOld)){
        $compare[$i] = $v;
        $i++;
    }
}