📜  PHP | array_diff_uassoc()函数

📅  最后修改于: 2022-05-13 01:56:35.723000             🧑  作者: Mango

PHP | array_diff_uassoc()函数

array_diff_uassoc()函数是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 的整数。

返回值:此函数返回一个数组,其中包含第一个数组$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

$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
)

方案二

$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/函数.array-diff-uassoc。 PHP