PHP array_diff_uassoc()函数用法介绍

array_diff_uassoc()function是PHP中的内置函数, 用于通过用户定义的函数比较键来获取一个或多个数组之间的差。此函数将一个或多个数组之间的键和值进行比较, 并从第一个数组中返回其余数组中不存在的元素。根据提供给该功能的用户定义功能比较按键。
注意:此功能不同于PHP | array_diff_assoc()函数就像在array_diff_assoc()函数中一样, 根据一些内部函数来比较键, 而在array_diff_uassoc()函数中, 则根据作为参数传递给它的用户定义函数来比较键。
语法如下:

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

【PHP array_diff_uassoc()函数用法介绍】参数:此函数接受数组列表作为参数, 并接受用户定义的函数(用于键的比较)。
  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

    推荐阅读