PHP 数组函数

array_udiff( )函数是 PHP 的内置函数。 array_udiff( ) 函数用于通过使用自定义函数计算多个数组的差集。此函数是在 PHP 5.1.0 中引入的。

语法

array array_udiff ( array $array1 , array $array2 [, array $... ], callable $value_compare_func); 

参数

参数描述必须/可选
array1第一个数组。必须
array2第二个数组。必须
array3,...要比较第n个数组。可选
value_compare_func自定义比较函数的字符串。必须

返回值

array_udiff( )函数返回一个数组,其中包含 第一个数组 array1 中存在其它的数组不存在的元素。

重要提示:

如果第一个参数是 <、= 或 > 而不是第二个参数,则用户定义的函数必须返回一个小于 0 的整数 <、= 或 >。

例子1

<?php
function userfunction($a,$b)
{
    if ($a===$b)
    {
	return 0;
    }
    return ($a>$b)?1:-1;
}
$a1=array("a"=>"A","b"=>"HTML","c"=>"yxjc123");
$a2=array("a"=>"Apple","b"=>"CSS","e"=>"PHP");
$result=array_udiff($a1,$a2,"userfunction");
print_r($result);
?> 

输出:

Array
(
[a] => A
[b] => HTML
[c] =>yxjc123
)

例子2

<?php
function callbackfunction($a,$b)
{
    if ($a===$b)
    {
        return 0;
    }
    return ($a>$b)?1:-1;
}
$lang1=array("a"=>"yxjc123","b"=>"c","c"=>"ruby","php");
$lang2=array("A"=>"yxjc123","b"=>"C","php","python");
$lang3=array("a"=>"c","b"=>"yxjc123","php","python");
$result=array_udiff($lang1,$lang2,$lang3,"callbackfunction");
print_r($result);
?> 

输出:

Array
(
[c] => ruby
)

例子3

<?php
function  userfunction($a, $b)
{
  if ($a === $b) 
    {
        return 0;
    }
    return ($a > $b) ? 1 : -1;
}

$arr1 = array(
   "a" => "C",
    "b" => "C++",
    "d" => "Java",
    "r" => "HTML"
);
$arr2 = array(
     "a" => "C",
     "y" => "C++",
     "d" => "C#",
     "x" => "PHP"
);
$result = array_udiff($arr1, $arr2, "userfunction");
print_r($result);
?> 

输出:

Array
(
[d] => Java
[r] => HTML
)