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
)
(
[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
)
(
[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
)
(
[d] => Java
[r] => HTML
)