在PHP中获取两个数组之间的差异

在PHP中获取两个数组之间的差异,php,arrays,array-difference,Php,Arrays,Array Difference,我需要得到$array1和$array2之间的差异,输出必须如下所示 $array1= array( array( 'StudentId' => 1 ),array( 'StudentId' => 2 ) ) ; $array2= array (array ( 'StudentId' => 1 )) ; 这就是你要找的吗 Array ( [0] => Array ( [StudentId] => 2 ) ) 输出: array(1){[1]=>array(1

我需要得到$array1和$array2之间的差异,输出必须如下所示

 $array1= array( array( 'StudentId' => 1 ),array( 'StudentId' => 2 ) ) ;
 $array2= array (array ( 'StudentId' => 1 )) ;

这就是你要找的吗

Array ( [0] => Array ( [StudentId] => 2 ) )
输出:


array(1){[1]=>array(1){[“StudentId”]=>int(2)}

这就是你要找的吗

Array ( [0] => Array ( [StudentId] => 2 ) )
输出:

array(1){[1]=>array(1){[“StudentId”]=>int(2)}

看看

数组_diff(数组$array1,数组$array2[,数组$…]))

将数组1与一个或多个其他数组进行比较,并返回 数组1中不存在于任何其他数组中的值

看看

数组_diff(数组$array1,数组$array2[,数组$…]))

将数组1与一个或多个其他数组进行比较,并返回 数组1中不存在于任何其他数组中的值


我解决这个问题的方法如下:

$array1 = array( array( 'StudentId' => 1 ), array( 'StudentId' => 2 ) );
$array2 = array( array( 'StudentId' => 1 ));

var_dump(array_diff_key($array1, $array2));

我解决这个问题的方法如下:

$array1 = array( array( 'StudentId' => 1 ), array( 'StudentId' => 2 ) );
$array2 = array( array( 'StudentId' => 1 ));

var_dump(array_diff_key($array1, $array2));

我尝试了
array\u diff()
,但是遇到了一个名为array to string conversion的PHP错误。如果您尝试
echo
print
结果,您将遇到一个错误,因为返回值是数组。使用
var_dump(数组_diff($arr1,$arr2))我尝试了
变量转储(array_diff($arr1,$arr2))。还遇到错误可能更改
$array1=array(array('StudentId'=>1)、array('StudentId'=>2))$array2=数组(数组('StudentId'=>1))
$array1=数组('StudentId'=>1,'StudentId'=>2)$array2=数组('StudentId'=>1),如果可能的话。不,这是不可能的:(我尝试了
array_diff()
,但是在调用数组到字符串转换时遇到了一个PHP错误。如果您尝试
echo
print
结果,您将遇到一个错误,因为返回值是数组。请使用
var_dump(array_diff($arr1,$arr2));
我尝试了
var_dump(array_diff($arr1,$arr2))
。也会遇到错误,可能会将
$array1=数组(数组('StudentId'=>1),数组('StudentId'=>2));$array2=数组(数组('StudentId'=>1));
更改为
$array1=数组('StudentId'=>1);$array2=数组('StudentId'=>1);
,如果可能的话。不可能(
array\u diff\u key
只检查键而不检查值。由于
$array1
具有键
[0],[1]
$array2
具有键
[0]
结果将始终返回第二个键,而不管其值。@Gil同意,但是OP没有要求检查值,而是要求获得两个数组之间的差异。这就是为什么我没有称之为错误答案,只是想指出这个问题:)@吉尔我也同意你的看法。我需要比较值的方法。
array\u diff\u key
只检查键而不检查值。因为
$array1
有键
[0],[1]
$array2
有键
[0]
结果将始终返回第二个键,不管它的值是多少。@Gil同意,但是OP没有要求检查值,而是要求获得两个数组之间的差异。这就是为什么我没有称它为错误答案,只是想指出这个问题:)@Gil我也同意你的意见。我需要比较值的方法。