将两个数组的差异保存在 PHP 中的另一个数组中

Save difference of two arrays in another array in PHP

我正在尝试将两个数组的差异保存在一个新数组中。

我用过 array_diff,我现在的代码部分有效,但新数组似乎将元素保存在错误的位置。

<?php 
    // Arrays to hold the numbers for this demo
    $arr1 = array(5,6,7,8);
    $arr2 = array(2,5,6);
    $arr3 = array_diff($arr1, $arr2);

    // Correct result but in wrong positions in the array
    var_dump($arr3); // array(2) { [2]=> int(7) [3]=> int(8) }
?>

怎么可能在大小为 2 的数组的位置 2 和位置 3 有一个值?

非常感谢任何关于此问题原因的解释,谢谢。

因为数组 没有 从零开始。如您所见,array_diff() 将保留密钥。

如果你想重置数组键,你可以使用array_values():

// Arrays to hold the numbers for this demo
$arr1 = array(5,6,7,8);
$arr2 = array(2,5,6);
$arr3 = array_values(array_diff($arr1, $arr2));
var_dump($arr3);

输出:

array(2) {
  [0]=>
  int(7)
  [1]=>
  int(8)
}

Demo