PHP array_diff_key 函数
一、函数功能:
计算出第一个数组与其他数组的键名差集(只考虑键名,不考虑键值)。比较两到多个数组,找出第一个数组中不包含在其他任何数组中的键名,返回键名及其对应的值组成的数组。PHP 5.1开始才支持此函数。关于计算数组差集系列函数的区别请参考页面:PHP数组计算差集系列函数的区别。
二、函数语法:
三、函数参数:
四、返回值:
五、用法举例:
1、两个数组的比较:
只要第一个数组中的key出现在后续数组key中,不管值是不是一样,都不会出现在返回数组中。
2、三个数组的比较:
3、array_diff_key是将数组键强制转换为"string"后进行"==="(全等于)比较:
计算出第一个数组与其他数组的键名差集(只考虑键名,不考虑键值)。比较两到多个数组,找出第一个数组中不包含在其他任何数组中的键名,返回键名及其对应的值组成的数组。PHP 5.1开始才支持此函数。关于计算数组差集系列函数的区别请参考页面:PHP数组计算差集系列函数的区别。
二、函数语法:
array array_diff_key ( $array1 , $array2 [, $...] )
三、函数参数:
参数名 | 描述 |
---|---|
$array1 | 参与比较的第一个数组; |
$array2 | 参与比较的第二个数组; |
... | 参与比较的更多数组; |
四、返回值:
返回第一个数组中不包含在其他任何数组中的键名及其对应的值组成的数组。
五、用法举例:
1、两个数组的比较:
只要第一个数组中的key出现在后续数组key中,不管值是不是一样,都不会出现在返回数组中。
<?php $arr1 = array("a"=>"aa", "b"=>"aiezu.com", "c"=>"cc"); $arr2 = array("a"=>false, "aiezu.com", "c"=>"cc"); print_r(array_diff_key($arr1, $arr2));输出:
Array ( <strong> => bb )</strong>
2、三个数组的比较:
<strong><?php $arr1 = array("a"=>"aa", "b"=>"bb", "c"=>"cc"); $arr2 = array("a"=>false); $arr3 = array("b"=>'bb'); print_r(array_diff_key($arr1, $arr2, $arr3));</strong>输出:
<strong>Array ( [c] => cc )</strong>
3、array_diff_key是将数组键强制转换为"string"后进行"==="(全等于)比较:
<strong><?php $arr1 = array(false=>"aa"); #false做为数组键时会自动转换为0 $arr2 = array("0"=>false); print_r($arr1); print_r(array_diff_key($arr1, $arr2));</strong>输出:
<strong>Array ( [0] => aa ) Array ( )</strong>