PHP | array_diff_uassoc()函数

这个 数组_diff_uassoc() 函数是PHP中的一个内置函数,用于使用用户定义的函数比较键来获取一个或多个数组之间的差异。此函数用于比较一个或多个数组之间的键和值,并返回第一个数组中其他数组中不存在的元素。根据提供给该函数的用户定义函数比较键。

null

注: 此函数与 PHP | array_diff_assoc()函数 在array_diff_assoc()函数中,键根据一些内部函数进行比较,而在array_diff_uassoc()函数中,键根据作为参数传递给它的用户定义函数进行比较。

语法:

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

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

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

返回值: 此函数返回包含第一个数组元素的数组 1美元 在参数中传递给它的其他数组中不存在。在第一个数组的键和值之间进行比较 1美元 和其他阵列一起。根据用户定义的功能进行键的比较。

例如:

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

© 版权声明
THE END
喜欢就支持一下吧
点赞5 分享