array_diff_ukey() Function
函数是PHP中的一个内建函数。它用于使用用户定义的函数比较两个或多个数组的键,并返回一个数组,该数组是array1,它不显示任何其他数组array2, array3或更多…
语法
1 | array_diff_ukey($array1, $array2, $array3..., arr_diffukeyFunction) |
参数:这个函数接受最小三个参数,三个参数都是必需的,另一个是可选的。参数描述如下:
- $array1(mandatory):该数组将与其他数组进行比较。(这样的数组与array1比较)。
- $array2(mandatory):与第一个数组相比较的数组。
- $array3(Optional):与第一个数组相比较的数组。
- arr_diffukeyFunction(mandatory):它需要用户定义的函数。定义可调用比较函数的字符串。如果第一个参数大于第二个参数,则比较函数返回一个大于0的整数。
返回值:返回一个数组,其中包含的条目不存在array1等其它数组:-(arra2、arra3 arar4 ….更多)。如果所有值都出现在其他数组中,则函数返回NULL。返回值类型是一个数组。
例子
1 2 3 4 5 6 7 8 9 10 11 12 | 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
1 2 3 4 5 6 7 8 9 10 | 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)。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | <?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); ?> |
输出
1 2 3 4 | Array ( [three] => Java Program ) |
程序2:取三个数组(array1、array2、arra3),使用用户定义的键比较函数(diffukeyFunction)。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | <?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); ?> |
输出
1 2 3 4 | Array ( [three] => Java Program ) |
程序3:如果所有值在其他数组中匹配,则返回Null
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | <?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); ?> |
输出
1 2 3 | Array ( ) |
程序4:如果只取一个数组(array1),使用用户定义的键比较函数(diffukeyFunction),则没有输出,并给出“RUNTIME ERROR”警告消息。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | <?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); ?> |
输出
1 | No Output |
警告
1 2 | PHP Warning: array_diff_ukey(): at least 3 parameters are required, 2 given in /home/c0177af9f69e897ad93cc9855a9ae415.php on line 23 |