array_diff()是PHP中的内置函数, 用于计算两个或多个数组之间的差。此函数根据一个或多个数组之间的元素值计算差值, 并以新数组的形式返回差值。此函数基本上返回第一个数组中存在的所有其他数组中不存在的所有条目。
语法如下:
array_diff($array1, $array2, $array3, ..., $arrayn)
参数:该函数可以采用任意数量的数组作为需要比较的参数。
返回类型:此函数将参数中的第一个数组与其余数组进行比较, 并返回包含$ array1中所有其他数组中不存在的所有条目的数组。
例子:
Input : $array1 = ('a', 'b', 'c');
$array2 = ('a', 'd', 'e');
$array3 = ('a', 'b', 'f');
array_diff($array1, $array2, $array3);
Output :
Array
(
[2] => c
)
Input : $array1 = ('a', 'b', 'a');
$array2 = ('a', 'd', 'e');
Output :
Array
(
[1] => b
)
下面的程序说明了PHP中array_diff()的工作方式:
<?php
// PHP code to illustrate the working of array_diff()
function Difference( $array1 , $array2 , $array3 ){
return ( array_diff ( $array1 , $array2 , $array3 ));
}
// Driver Code
$array1 = array ( 'a' , 'b' , 'c' , 'd' , 'e' , 'f' );
$array2 = array ( 'a' , 'b' , 'g' , 'h' );
$array3 = array ( 'a' , 'f' , 'i' );
print_r(Difference( $array1 , $array2 , $array3 ));
?>
输出如下:
Array
(
[2] => c
[3] => d
[4] => e
)
注意事项:
- 它比较元素的字符串表示形式。也就是说, array_diff()的1和" 1"相等。
- 第一个数组中元素的重复次数无关紧要。也就是说, 如果一个元素在$ array1中出现3次, 而在其他数组中仅出现1次, 则在输出中将忽略该元素在第一个数组中的所有3次出现。
- 对于多维数组, 我们需要分别比较每个维度。例如:-$ array1 [2], $ array2 [2]等。
参考:http://php.net/manual/en/function.array-diff.php