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


PHP array_udiff_uassoc()用法及代码示例


array_udiff_uassoc()函数是PHP中的内置函数,用于区分两个或多个数组。该函数通过使用两个带有附加索引键的用户定义函数来计算差异数组。它使用回调函数比较数据和索引,并返回差值。

用法:

array_udiff_uassoc($arr1, $arr2, $arr3........nth array, value_Funtion, key_Funtion )

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


  1. $arr1,$arr2,$arr3,$arr4,…。,$arrn:这表示我们要区分的数组列表。
  2. value_Funtion:此参数代表用户定义的函数。该用户定义的函数将用于比较值。
  3. key_Funtion:它也是用户定义的函数。此用户定义的函数用于比较数组键。

注意:如果第一个自变量大于第二个自变量,则两个比较函数(value_Funtion,key_Funtion)均返回大于0的整数。

返回值:此函数返回一个数组,其中包含数组$arr1的所有值,这些值在任何其他数组中均不存在。

一些相关函数:

以下示例程序旨在说明array_udiff_uassoc()函数。

程序1:

<?php 
// PHP program to illustrate 
// array_udiff_uassoc() function 
  
// comparison function for array values 
function value_Funtion($a, $b) 
{ 
    if ($a === $b) { 
        return 0; 
    } 
    return ($a > $b) ? 1 : -1; 
} 
  
// comparison function for array keys 
function key_Funtion($a, $b) 
{ 
    if ($a === $b) { 
        return 0; 
    } 
    return ($a > $b) ? 1 : -1; 
} 
  
  
// array1  list for comparison. 
$arr1 = array( 
    "m" => "C lab", 
    "n" => "Java lab", 
    "o" => "C# lab", 
    "x" => "C++ lab", 
    "y" => "Ruby lab", 
); 
  
//array2  list for comparison. 
$arr2 = array( 
       "m" => "C lab", 
    "b" => "Java lab", 
    "c" => "C# lab", 
    "x" => "C++ lab", 
    "n" => "Ruby lab", 
); 
  
$result = array_udiff_uassoc($arr1, 
    $arr2, "value_Funtion", "key_Funtion"); 
  
// print result. 
print_r($result); 
?>
输出:
Array
(
    [n] => Java lab
    [o] => C# lab
    [y] => Ruby lab
)

程序:2

<?php 
// PHP program to illustrate 
// array_udiff_uassoc() function 
  
// comparison function for array values 
function value_Funtion($a, $b) 
{ 
    if ($a === $b) { 
        return 0; 
    } 
    return ($a > $b) ? 1 : -1; 
} 
  
// comparison function for array keys 
function key_Funtion($a, $b) 
{ 
    if ($a === $b) { 
        return 0; 
    } 
    return ($a > $b) ? 1 : -1; 
} 
  
  
// array1  list for comparison. 
$arr1 = array( 
    "a" => "C lab", 
    "b" => "Java lab", 
    "c" => "C# lab", 
    "d" => "C++ lab", 
    "e" => "Ruby lab", 
); 
  
// array2  list for comparison. 
$arr2 = array( 
       "a" => "C lab", 
    "b" => "Java lab", 
    "c" => "C# lab", 
    "d" => "C++ lab", 
    "e" => "XML lab", 
); 
$arr3 = array( 
    "a" => "C lab", 
    "b" => "Java lab", 
    "c" => "C# lab", 
    "d" => "C++ lab", 
    "e" => "CSS lab"
); 
$arr4 = array( 
    "a" => "C lab", 
    "b" => "Java lab", 
    "c" => "C# lab", 
    "d" => "C++ lab", 
    "e" => "PHP lab"
); 
  
$result = array_udiff_uassoc($arr1, $arr2,  
    $arr3, $arr4, "value_Funtion", "key_Funtion"); 
  
// print result. 
print_r($result); 
?>
输出:

Array
(
    [e] => Ruby lab
)

程序:3

<?php 
// PHP program to illustrate 
// array_udiff_uassoc() function 
  
// comparison function for array values 
function value_Funtion($a, $b) 
{ 
    if ($a === $b) { 
        return 0; 
    } 
    return ($a > $b) ? 1 : -1; 
} 
  
// comparison function for array keys 
function key_Funtion($a, $b) 
{ 
    if ($a === $b) { 
        return 0; 
    } 
    return ($a > $b) ? 1 : -1; 
} 
  
  
// array1  list for comparison. 
$arr1 = array( 
    "x" => "Geeks", 
    "y" => "for", 
    "z" => "Geeks", 
); 
  
// array2  list for comparison. 
$arr2 = array( 
     "x" => "Geeks", 
    "y" => "for", 
    "z" => "Geeks", 
); 
  
  
$result = array_udiff_uassoc($arr1, 
    $arr2, "value_Funtion", "key_Funtion"); 
  
// print result. 
print_r($result); 
?>
输出:
Array
(
)

计划:4取三个数组(array1和array2,array3)并使用比较函数array_udiff_uassoc()函数。如果所有三个数组都具有相同的索引,但值不同,则返回第一个数组。

<?php 
// PHP program to illustrate 
// array_udiff_uassoc() function 
  
// comparison function for array values 
function value_Funtion($a, $b) 
{ 
    if ($a === $b) { 
        return 0; 
    } 
    return ($a > $b) ? 1 : -1; 
} 
  
// comparison function for array keys 
function key_Funtion($a, $b) 
{ 
    if ($a === $b) { 
        return 0; 
    } 
    return ($a > $b) ? 1 : -1; 
} 
  
  
// array1  list for comparison. 
$arr1 = array( 
    "a" => "C lab", 
    "b" => "Java lab", 
    "d" => "C# lab", 
); 
  
// array2  list for comparison. 
$arr2 = array( 
       "a" => "C ", 
    "b" => "Java ", 
    "d" => "C#", 
); 
  
// array3  list for comparison. 
$arr3 = array( 
    "a" => "Program", 
    "b" => "Code", 
    "d" => "Run", 
  
); 
  
$result = array_udiff_uassoc($arr1, 
   $arr2, $arr3, "value_Funtion", "key_Funtion"); 
  
// print result. 
print_r($result); 
?>
输出:
Array
(
    [a] => C lab
    [b] => Java lab
    [d] => C# lab
)

参考: http://php.net/manual/en/function.array-udiff-uassoc.php



相关用法


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