PHP | array_udiff()函数
array_udiff() 是PHP的内置函数,用于区分两个或多个数组。该函数通过使用用户定义的函数数据比较来比较两个或多个数组的不同值,并返回差异。实际上,该函数返回第一个数组中存在的所有条目,而其他数组中不存在。如果所有数组的所有值都相同,则返回 NULL 数组。它与 arr_diff() 的比较不同
句法:
array_udiff($array1, $array2, $array3……….array nth, arr_udiffFunction)
使用的参数:该array_udiff()函数参数说明如下:
- 数组1:
它是初始数组并与另一个数组进行比较......
它是强制性的。 - 数组2:
该数组与第一个数组键进行比较。
它是强制性的。 - 数组3…:
第二个数组与第一个数组键比较。
它的可选。 - arr_udiffFunction:它所需的用户定义函数和定义用户定义回调函数的字符串,如果第一个参数是 <、= 或 > 比第二个参数,则返回一个整数 <、= 或 > 大于 0。
返回值:
返回一个数组类型值,其中包含所有其他数组中存在的第一个数组。如果全部相同,则数组返回 NULL 数组。
注意:这个内置函数(array_udiff()) 用于比较数组的键和用户定义的函数来比较值。
示例 1:
Input :
$arr1=array("a"=>"Geeksforgeeks", "b"=>"IDE", "d"=>"environment", "v"=>"Code Run");
$arr2=array("a"=>"Geeksforgeeks", "b"=>"Editor", "f"=>"Write", "h"=>"Code", );
Output:
Array
(
[b] => IDE
[d] => environment
[v] => Code Run
)
Explanation: arr1 contains only three values(IDE, environment,
Code Run) which is not present in arr2.
示例 2:
Input:
$arr1 = array("a"=>"Geeks", "x"=>"article",
"n"=>"Geeks");
$arr2 = array("x"=>"Geeks", "y"=>"for", "z"=>"Geeks",
"a"=>"IDE", "a"=>"Editor", );
Output:
Array
(
[x] => article
)
Explanation: arr1 contains only one value (article) which is not present in arr2.
我们举一个简单的例子来理解 array_udiff()函数。
程序1:取两个数组(array1 和array2)并使用用户定义的键比较函数(arr_udiffFunction)。
$b) ? 1 : -1;
}
//array list for comparison.
$arr1 = array(
"a" => "C",
"b" => "C++",
"d" => "Java",
"r" => "XML"
);
$arr2 = array(
"a" => "C",
"y" => "C++",
"d" => "C#",
"x" => "PHP"
);
$result = array_udiff($arr1, $arr2, "arr_udiffFunction");
//print result.
print_r($result);
?>
输出:
Array
(
[d] => Java
[r] => XML
)
程序: 2取四个数组(array1、array2、array3 和array4)并使用用户定义的键比较函数array_udiff()。
$b) ? 1 : -1;
}
//array list for comparison.
$arr1 = array(
"a" => "C lab",
"b" => "C++ lab",
"d" => "Java lab",
"r" => "ASP lab"
);
$arr2 = array(
"a" => "C lab",
"y" => "C++ lab",
"d" => "Java lab",
"r" => "XML lab"
);
$arr3 = array(
"a" => "C# lab",
"n" => "Android lab",
"d" => "Python lab",
"r" => "XML lab"
);
$arr4 = array(
"a" => "Objective C lab",
"y" => "C++ lab",
"d" => "Java lab",
"r" => "Perl lab"
);
$result = array_udiff($arr1, $arr2, $arr3, "arr_udiffFunction");
//print result.
print_r($result);
?>
输出:
Array
(
[r] => ASP lab
)
程序: 3取两个数组(array1 和array2)并使用用户定义的键比较函数(array_udiff()),它匹配数组的所有元素和值,返回NULL。
$b) ? 1 : -1;
}
//array list for comparison.
$arr1 = array(
"a" => "C",
"b" => "C++",
"d" => "Java",
"r" => "XML"
);
$arr2 = array(
"a" => "C",
"y" => "C++",
"d" => "Java",
"r" => "XML"
);
$result = array_udiff($arr1, $arr2, "arr_udiffFunction");
//print result.
print_r($result);
?>
输出:
Array
(
)