array_diff_ukey()是PHP中的一个内置函数,用于使用用户定义的函数比较两个或更多数组的键,并返回一个数组,该数组包含在array1中而不在其他数组(array2,array3或更多)中的元素。
语法:
array_diff_ukey(array1,array2, $array3…, arr_diffukeyFunction)
参数:
$array1(必需):将要与其他数组进行比较的数组。(即,从array1开始进行数组比较)。
$array2(必需):与第一个数组进行比较的数组。
$array3(可选):与第一个数组进行比较的数组。
arr_diffukeyFunction(必需):必需的用户定义函数。它是一个可调用的比较函数,该函数返回一个整数。如果第一个参数大于第二个参数,则返回大于0的值。
返回值:返回一个包含来自array1且不在其他数组(arra2,arra3,arar4等)中的元素的数组。如果所有值都存在于其他数组中,则该函数返回NULL。返回的类型是一个数组。
示例1:
Input:
$arr1 = array("one"=>"C Program", "two"=>"PHP Program", "three"=>"Java Program ");
$arr2 = array("one"=>"Java Program", "two"=>"C++ Program", "six"=>"Java Program");
Output:
Array
(
[three] => Java Program
)
Explanation: First two values of arr1 are matched with arr2 and last value
not matched so the function returns last value.
示例2:
Input:
$arr1=array("one"=>"C Program", "two"=>"PHP Program", "three"=>"Java Program ");
$arr2=array("one"=>"Java Program", "two"=>"C++ Program", "three"=>"Java Program");
Output:
Array
(
)
Explanation: All values are matched with arr2 so function return null values.
让我们通过一个例子来理解array_diff_ukey()函数。
程序1:采用两个数组(array1和array2)并使用用户定义的关键字比较函数(diffukeyFunction)。PHP语言的简单解决方案:
<?php
// Program of array_diff_ukey function in PHP
function arr_diffukeyFunction($one, $two)
{
if ($one === $two) {
return 0;
}
return ($one > $two) ? 1 : -1;
}
// Driver Code
$arr1 = array(
"one" => "C Program",
"two" => "PHP Program",
"three" => "Java Program "
);
$arr2 = array(
"one" => "Java Program",
"two" => "C++ Program",
"six" => "Java Program"
);
$result = array_diff_ukey($arr1, $arr2, "arr_diffukeyFunction");
print_r($result);
?>
output:
Array
(
[three] => Java Program
)
程序2:采用三个数组(array1、array2和arra3)并使用用户定义的关键字比较函数(diffukeyFunction)。
<?php
// Program of array_diff_ukey function in PHP
function arr_diffukeyFunction($one, $two)
{
if ($one === $two) {
return 0;
}
return ($one > $two) ? 1 : -1;
}
// Driver Code
$arr1 = array(
"one" => "C Program",
"two" => "PHP Program",
"three" => "Java Program "
);
$arr2 = array(
"one" => "XML Program",
"two" => "C++ Program",
"four" => "CSS Program"
);
$arr3 = array(
"five" => "MVC Program",
"six" => "C# Program",
"one" => "ASP .NET Program"
);
$result = array_diff_ukey($arr1, $arr2, $arr3, "arr_diffukeyFunction");
print_r($result);
?>
output:
Array
(
[three] => Java Program
)
程序3:如果所有值在其他数组中都匹配,则返回Null
<?php
// Program of array_diff_ukey function in PHP
function arr_diffukeyFunction($one, $two)
{
if ($one === $two) {
return 0;
}
return ($one > $two) ? 1 : -1;
}
// Driver Code
$arr1 = array(
"one" => "C Program",
"two" => "PHP Program"
);
$arr2 = array(
"one" => "Java Program",
"two" => "C++ Program"
);
$result = array_diff_ukey($arr1, $arr2, "arr_diffukeyFunction");
print_r($result);
?>
output:
Array
(
)
程序4:如果我们只采用一个数组(array1)并使用用户定义的关键字比较函数(diffukeyFunction),则没有输出,并且会给出“RUNTIME ERROR”警告消息。
<?php
//Program of array_diff_ukey function in PHP
function arr_diffukeyFunction($one, $two)
{
if ($one === $two) {
return 0;
}
return ($one > $two) ? 1 : -1;
}
// Driver Code
$arr1 = array(
"one" => "C Program",
"two" => "PHP Program",
"three" => "Java Program "
);
//take only one array
$result = array_diff_ukey($arr1, "arr_diffukeyFunction");
print_r($result);
?>
output:
No Output
Warning:
PHP Warning: array_diff_ukey(): at least 3 parameters are required,
2 given in /home/c0177af9f69e897ad93cc9855a9ae415.php on line 23