PHP array_diff_uassoc()函数用法介绍

2021年3月12日14:29:07 发表评论 764 次浏览

array_diff_uassoc()function是PHP中的内置函数, 用于通过用户定义的函数比较键来获取一个或多个数组之间的差。此函数将一个或多个数组之间的键和值进行比较, 并从第一个数组中返回其余数组中不存在的元素。根据提供给该功能的用户定义功能比较按键。

注意:此功能不同于PHP | array_diff_assoc()函数就像在array_diff_assoc()函数中一样, 根据一些内部函数来比较键, 而在array_diff_uassoc()函数中, 则根据作为参数传递给它的用户定义函数来比较键。

语法如下:

array_diff_uassoc($array1, $array2, $array3, ..., $arrayn, user_function)

参数:此函数接受数组列表作为参数, 并接受用户定义的函数(用于键的比较)。

  1. list_of_array:此函数获取由空格分隔的数组列表, 我们要从中查找差异。在上面的语法中, 数组列表为$ array1, $ array2, $ array3, …, $ arrayn。该列表必须包含至少两个数组, 否则将引发警告。
  2. user_function:这是一个字符串类型参数, 代表用于键比较的用户定义函数的名称。该函数返回一个整数, 该整数是较小, 较大或相等如果第一个参数是0, 则为0更大, 更小或相等而不是第二个论点。

返回值:该函数返回一个包含第一个数组元素的数组$ array1在参数传递给它的其他数组中不存在。在第一个数组的键和值之间进行比较$ array1与其余的数组。键的比较是根据用户定义的功能完成的。

例子:

Input : $a1=array(10=>"striver", 20=>"raj", 30=>"geek")
        $a2=array(20=>"striver", 10=>"raj", 30=>"geek")
        function user_function($a, $b)
        {
           if ($a===$b)
           {
              return 0;
           }
           return ($a>$b)?1:-1;
        }

Output: Array
        (
           [10] => striver
           [20] => raj
        )

Explanation:  Since user_function returns 0 when keys
are equal and 1 and -1 when greater and less respectively.
So, the elements with unequal keys are in the output array.

下面的程序说明了PHP中的array_diff_uassoc()函数:

程序1:

<?php
// PHP program to illustrate the  
// array_diff_uassoc() function 
  
// user defined function that returns 0 if 
// $array1's keys are equal to any other 
// input array, else returns 1 if greater, // or -1 if smaller 
function user_function( $a , $b )
{
   if ( $a === $b )
   {
       return 0;
   }
   return ( $a > $b )? 1: -1;
}
  
// Input Arrays
$a1 = array (10=> "striver" , 20=> "raj" , 30=> "geek" );
$a2 = array (20=> "striver" , 10=> "raj" , 30=> "geek" );
  
$result = array_diff_uassoc ( $a1 , $a2 , "user_function" );
  
print_r( $result );
?>

输出如下:

Array
(
    [10] => striver
    [20] => raj
)

程序2:

<?php
// PHP program to illustrate the 
// array_diff_uassoc() function 
  
// user defined function that returns 1 if 
// $array1's keys are equal to any other 
// input array, else returns 1 if greater, // or 0 if smaller 
function user_function( $a , $b )
{
   if ( $a === $b )
   {
     return 1;
   }
   return ( $a > $b )? 1: 0;
}
  
// Input Arrays
$a1 = array (10=> "striver" , 20=> "raj" , 30=> "geek" );
$a2 = array (20=> "striver" , 10=> "raj" , 30=> "geek" );
  
$result = array_diff_uassoc ( $a1 , $a2 , "user_function" );
print_r( $result );
?>

:

输出如下:

Array
(
    [20] => raj
    [30] => geek
)

参考

:

http://php.net/manual/en/function.array-diff-uassoc.php


木子山

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: