PHP 数组函数

array_diff_ukey()是 PHP 中的一个内置函数。 array_diff_ukey() 函数将两个或多个数组的键与用户定义的函数进行比较,并返回一个数组,其中包含 array1 中不存在于 array2 或 array3 等中的条目。

简单来说array_diff_ukey() 函数通过开发者自定义的函数用于比较两个(或更多个)数组的键名 ,并返回差集,并且是以第一个数组的键名为标准。

此函数是在 PHP 5.1 中引入的。

语法

array_diff_ukey(array1,array2,array3...,user_function); 

参数

参数描述必须/可选
array1要比较的数组1必须
array2要比较的数组2必须
array3要比较的更多数组...可选
user_function用户自定义函数,定义比较字符串的函数。必须

返回值

它返回一个数组,其中包含 array1 中不存在于任何其他数组中的所有条目。

例子1

<?php
function compfunction($x,$y)
{
    if ($x===$y)
    {
        return 0;
    }
    return ($x>$y)?1:-1;
}
$comp1=array("a"=>"1","b"=>"2","c"=>"3","j"=>"yxjc123.com");
$comp2=array("a"=>"1","b"=>"2","e"=>"5");
$res=array_diff_ukey($comp1,$comp2,"compfunction");
print_r($res);
?> 

输出:

Array( [c] => 3 [j] => yxjc123.com )

例子2

<?php
function myfunction($x,$y)
{
    if ($x===$y)
    {
       return 0;
   }
   return ($x>$y)?1:-1;
}
$alpha1=array("a"=>"apple","b"=>"ball","c"=>"cat");
$alpha2=array("a"=>"ant","b"=>"boy","d"=>"dog");
$alpha3=array("e"=>"elephant","f"=>"fox","a"=>"about");
$result=array_diff_ukey($alpha1,$alpha2,$alpha3,"myfunction");
print_r($result);
?> 

输出:

Array ( [c] => cat )

例子3

<?php
function keyFunction($x, $y)
{
     if ($x === $y) 
      {
         return 0;
      }
      return ($x > $y) ? 1 : -1;
}
$lang1 = array(  "a" => "Python",   "b" => "PHP",   "c" => "php" );
$lang2 = array(  "a" => "php",   "b" => "Ruby",  "d" => "php" );
$result = array_diff_ukey($lang1, $lang2, "keyFunction");
print_r($result);
?> 

输出:

Array( [c] => php )

例子4

<?php
function compfunction($x, $y)
{
   if ($x === $y) 
    {
         return 0;
   }
    return ($x > $y) ? 1 : -1;
}
 

$game1 = array( "x" => "cricket",  "y" => "tennis",  "z" => "football" );
$game2 = array( "x" => "golf",  "y" => "hockey",  "w" => "cycling" );
$game3 = array( "u" => "badminton",  "v" => "shooting", "x" => "boxing" );
$result = array_diff_ukey($game1, $game2, $game3, "compfunction");
print_r($result);
?> 

输出:

Array( [z] => football )