在PHP中获取两个数组之间的差异
我需要得到$array1和$array2之间的差异,输出必须如下所示在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= 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我也同意你的意见。我需要比较值的方法。