PHP array_diff 函数用于比较两个(或更多个)数组的键值,并返回差集。该函数比较两个(或更多个)数组的键值,并返回一个差集数组,该数组包括了所有在被比较的数组中但是不在任何其他参数数组中的键值。
$a1=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow"); $a2=array("e"=>"red","f"=>"green","g"=>"blue"); $result=array_diff($a1,$a2); print_r($result);
上面的代码将会输出如下内容:
Array ( [d] => yellow )
可以看到,array_diff() 函数返回了一个差集数组,该差集包含了所有在 $a1 数组中但是不在 $a2 数组中的键值。
array_diff() 函数也可以用来比较多个数组。例如我们可以使用如下代码来比较三个不同的数组:
$a1=array("red","green","blue","yellow"); $a2=array("red","green"); $a3=array("green","blue"); $result=array_diff($a1,$a2,$a3); print_r($result);
上面的代码将会输出如下内容:
Array ( [0] => yellow )
P>< P > array_diff() 函数也可以使用回调函数来对值进行比较。例如我们可以使用如下代码来对字符串进行大小写不区分的比较: P > < pre > $ a1 = array ( "Red " , "Green " , "Blue " , "Yellow " ) ; $ a2 = array ( "RED " , "GREEN " , "BLUE " ) ; function caseInsensitiveCompare ( $ str1 , $ str2 ) { return strcasecmp ( $ str1 , $ str2 ) ; } $ result = array_diff ( $ a1 , $ a2 , 'caseInsensitiveCompare' ) ; print_r ( $ result ) ; pre > < p >上面的代码将会输出如下内容: p > < pre > Array ( [ 0 ] =& gt ; Yellow ) pre > < p >可以看到,使用回调函數 caseInsensitiveCompare() , array_diff() 函式就能够对字元進行大小寫不區分的比對。 p >
完整的 PHP Array 参考手册
比较两个数组的键名和键值,并返回差集:
array_diff_assoc() 函数用于比较两个(或更多个)数组的键名和键值 ,并返回差集。
该函数比较两个(或更多个)数组的键名和键值,并返回一个差集数组,该数组包括了所有在被比较的数组(array1)中,但是不在任何其他参数数组(array2 或 array3 等等)中的键名和键值。
参数 | 描述 |
---|---|
array1 | 必需。与其他数组进行比较的第一个数组。 |
array2 | 必需。与第一个数组进行比较的数组。 |
array3,... | 可选。与第一个数组进行比较的其他数组。 |
返回值: | 返回一个差集数组,该数组包括了所有在被比较的数组(array1)中,但是不在任何其他参数数组(array2 或 array3 等等)中的键名和键值。 |
---|---|
PHP 版本: | 4.3+ |
比较两个数组的键名和键值,并返回差集:
比较三个数组的键名和键值,并返回差集:
PHP array_diff() 函数 完整的 PHP Array 参考手册实例 比较两个数组的键值,并返回差集:?php $a1=array(a=red,b=green,c=blue,...
PHP array_merge() 函数 完整的 PHP Array 参考手册实例 把两个数组合并为一个数组:?php $a1=array(a=red,b=green); $a2=array(...
PHP list() 函数 完整的 PHP Array 参考手册实例 把数组中的值赋给一些变量:?php $my_array = array(Dog,Cat,Horse); list($a, ...
PHP uasort() 函数 完整的 PHP Array 参考手册实例 使用用户自定义的比较函数对数组 $arr 中的元素按键值进行排序:?php functio...
PHP trigger_error() 函数 完整的 PHP Error 参考手册定义和用法 trigger_error() 函数创建用户自定义的错误消息。 trigger_erro...