将两个数组的差异保存在 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)
}
我正在尝试将两个数组的差异保存在一个新数组中。
我用过 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)
}