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
廣告