PHP array_diff_uassoc() 函数用法及示例

PHP Array 函数手册

定义和用法

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(Optional)

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

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 Array 函数手册