
PHP array_diff_ukey() 函数比较数组,返回两个数组的差集(只比较键名,使用用户自定义的键名比较函数)。
定义和用法
array_diff_ukey()使用用户定义函数仅比较两个(或更多)数组的键,并返回一个数组,该数组包含array1中,但不存在于array2或array3等中的项。
此函数不同于array_diff()函数,因为array_diff()比较值,而此函数比较键。
此函数不同于array_diff_assoc()函数,因为array_diff_assoc()使用内部算法比较索引,而此函数使用用户定义的函数。
语法
array_diff_ukey ( $array1, $array2 [, $array3...,callback $key_compare_func] );
参数
| 序号 | 参数及说明 | 
|---|---|
| 1 | array1(必填) 第一个数组是将与其他数组进行比较的数组。 | 
| 2 | array2(必填) 它是一个要与第一个数组进行比较的数组 | 
| 3 | array3(Optional) 它是一个要与第一个数组进行比较的数组 | 
| 4 | key_compare_func(必填) 在第一个参数小于,等于或大于第二个参数时,该比较函数必须相应地返回一个小于,等于或大于 0 的整数。  | 
返回值
此函数返回一个数组,其中包含来自array1的所有其他数组中不存在的所有条目。
PHP版本
此函数最早是在PHP版本5.1.0中引入的。
在线示例
array_diff_ukey()与key_compare_func()使用示例-
<?php
   function key_compare_func($a, $b) {
      if ($a === $b) {
         return 0;
      }
      return ($a > $b)? 1: -1;
   }
   $input1 = array(0=>"banana", 1=>"orange", 2=>"grapes");
   $input2 = array(3=>"apple",1=>"apricot", 5=>"mango");
   print_r(array_diff_ukey($input1,$input2,"key_compare_func"));
?>测试看看‹/›输出结果:
Array ( [0] => banana [2] => grapes )
在线示例
array_intersect_ukey() 示例-
<?php
   function key_compare_func($a, $b) {
      if ($a === $b) {
         return 0;
      }
      return ($a > $b)? 1: -1;
   }
   $input1 = array('blue'  => 1, 'red'  => 2, 'green'  => 3, 'purple' => 4);
   $input2 = array('green' => 5, 'blue' => 6, 'yellow' => 7, 'cyan'   => 8);
   print_r(array_diff_ukey($input1,$input2,"key_compare_func"));
?>测试看看‹/›输出结果:
Array ( [red] => 2 [purple] => 4 )
