PHP array_diff_assoc() 函式



定義和用法

array_diff_assoc() 函式比較兩個陣列(或多個)陣列並返回差異。

此函式比較兩個(或多個)陣列的鍵和值,並返回一個數組,該陣列包含 array1 中的條目,但不存在於 array2 或 array3 等中。

此函式與 array_diff() 函式不同,因為 array_diff() 僅使用值與其他陣列進行比較,而 array_diff_assoc() 函式在與其他陣列進行比較時使用鍵和值。

語法

array array_diff_assoc( array $array1, array $array2 [, array $array3...] );

引數

序號 引數及說明
1

array1(必需)

它是要從中比較的陣列

2

array2(必需)

它是要與第一個陣列進行比較的陣列

3

array3(可選)

它是要與第一個陣列進行比較的陣列

返回值

array_diff_assoc() 函式返回一個數組,其中包含 array1 中的所有值,這些值在任何其他陣列中都不存在,並且具有相同的鍵。

PHP 版本

此函式首次引入於 PHP 4.3.0 版本。

示例

嘗試以下示例。這裡 "a" => "orange" 和 "c"=>"banana" 同時存在於兩個陣列中,因此在結果中不可用 -

<?php
   $input1 = array( "a"=>"orange", "b"=>"mango", "c"=>"banana");
   $input2 = array( "a"=>"orange", "b"=>"apple", "c"=>"banana");
   print_r(array_diff_assoc($input1, $input2));
?>

這將產生以下結果 -

Array
(
    [b] => mango
)

示例

這裡兩個陣列對於所有鍵值對都具有不同的鍵和相應的值,例如 "a"=>"orange" 不存在於第二個陣列中,類似地其他鍵值對也不存在於第二個陣列中,因此它們將出現在結果中 -

<?php
   $input1 = array( "a"=>"orange", "b"=>"mango", "c"=>"banana");
   $input2 = array( "a"=>"banana", "b"=>"apple", "c"=>"orange");
   print_r(array_diff_assoc($input1, $input2));
?>

這將產生以下結果 -

Array
(
    [a] => orange
    [b] => mango
    [c] => banana
)

示例

此示例闡明瞭只有當 (string) $elem1 === (string) $elem2 時,鍵值對中的兩個值才被視為相等。-

<?php
    $input1 = array(0, 5, 20);
    $input2 = array("00", "05", "20");
    $result = array_diff_assoc($input1, $input2);
    print_r($result);
?>

這將產生以下結果 -

Array
(
    [0] => 0
    [1] => 5
)
php_function_reference.htm
廣告