PHP array_diff_uassoc() 函数



定义和用法

array_diff_uassoc() 函数比较两个(或更多)数组的键和值,并返回一个数组,该数组包含 array1 中在任何其他数组中都不存在的条目,并且具有相同的值。

此函数与 array_diff() 不同,因为 array_diff() 比较值,而此函数比较其他数组中的键及其值。

此函数与 array_diff_assoc() 不同,因为 array_diff_assoc() 使用内部算法来比较键及其值,而此函数使用用户定义的函数来比较键及其值。

语法

array_diff_uassoc ( $array1, $array2 [, $array3..., callback $key_compare_func] );

参数

序号 参数和描述
1

array1(必需)

要从中比较的数组

2

array2(必需)

这是要与第一个数组进行比较的数组

3

array3(可选)

要与第一个数组进行比较的数组

4

key_compare_func(必需)

它是用于比较键的回调函数。此回调函数必须返回一个整数 <、=、> 0,如果第一个参数分别被认为是 <、=、> 于第二个参数。

返回值

此函数返回一个数组,其中包含 array1 中的所有条目,但在任何其他数组中都不存在。

PHP 版本

此函数首次在 PHP 5.0.0 版本中引入。

示例

尝试以下示例。此处键比较函数如果 $input1 键等于任何其他输入数组,则返回 0,否则如果大于则返回 1,或者如果小于则返回 -1。

在使用定义的函数比较键时,我们在两个数组中都有键“a”,因此它不会出现在输出中。接下来,键“b”和“c”不在第二个数组中,因此它将进入输出。此外,0 => “red” 在输出中,因为在第二个参数中,“red” 的键为 1 −

<?php
   function key_compare_func($a, $b) {
      if ($a === $b) {
         return 0;
      }
      return ($a > $b)? 1: -1;
   }

   $input1 = array("a" => "green", "b" => "brown", "c" => "blue", "red");
   $input2 = array("a" => "green", "yellow", "red");

   $result = array_diff_uassoc($input1, $input2, "key_compare_func");

   print_r($result);

?>

这将产生以下结果 -

Array
(
    [b] => brown
    [c] => blue
    [0] => red
)

示例

尝试以下示例。这次“red” 将不会出现在输出中,因为现在两个键都相等,即 0。

<?php
   function key_compare_func($a, $b) {
      if ($a === $b) {
         return 0;
      }
      return ($a > $b)? 1: -1;
   }

   $input1 = array("a" => "green", "b" => "brown", "c" => "blue", "red");
   $input2 = array("a" => "green", "c" => "yellow", "red");

   $result = array_diff_uassoc($input1, $input2, "key_compare_func");

   print_r($result);

?>

这将产生以下结果 -

Array
(
    [b] => brown
    [c] => blue
)
php_function_reference.htm
广告