当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


PHP array_udiff()用法及代码示例


array_udiff()是PHP中的内置函数,用于区分两个或多个数组。该函数通过使用用户定义的函数数据比较来比较两个或多个数组的不同值,并返回差异。实际上,该函数返回第一个数组中存在的所有条目,而其他数组中不存在。如果所有数组的所有值都相同,则返回NULL数组。与arr_diff()的比较不同

用法:

array_udiff($array1, $array2, $array3..........array nth, arr_udiffFunction)

使用的参数:该array_udiff()函数参数如下所述:


  1. array1 :
    它是初始数组,并与另一个数组进行比较…
    它是强制性的。
  2. array2 :
    数组与第一个数组键相比。
    它是强制性的。
  3. array3…:
    第二个数组与第一个数组键相比。
    它是可选的。
  4. arr_udiffFunction:它的Required用户定义函数和一个用于定义用户定义的回调函数的字符串,如果第一个参数大于第二个参数,则它返回一个大于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 values(article) which is not present in arr2.

让我们以一个简单的示例来了解array_udiff()函数。

示例1:取两个数组(array1和array2)并使用用户定义的键比较函数(arr_udiffFunction)。

<?php 
//PHP code for array_uintersect_assoc function 
function arr_udiffFunction($a, $b) 
{ 
    if ($a === $b) { 
        return 0; 
    } 
    return ($a > $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()。

<?php 
//PHP code for array_uintersect_assoc function 
function arr_udiffFunction($a, $b) 
{ 
    if ($a === $b) { 
        return 0; 
    } 
    return ($a > $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()。),该函数具有与array的所有元素和值都匹配的返回NULL的值。

<?php 
//PHP code for array_uintersect_assoc function 
function arr_udiffFunction($a, $b) 
{ 
    if ($a === $b) { 
        return 0; 
    } 
    return ($a > $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
(
)


相关用法


注:本文由纯净天空筛选整理自jit_t大神的英文原创作品 PHP | array_udiff() Function。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。