array_diff_assoc()函數(shù)比較兩個(或多個)數(shù)組并返回差值。
此函數(shù)比較兩個(或多個)數(shù)組的鍵和值,并返回一個包含array1條目但在array2或array3,...等中不存在的條目的數(shù)組。
此函數(shù)不同于array_diff()函數(shù),因為array_diff()僅使用值與其他數(shù)組進行比較,而array_diff_assoc()函數(shù)在與其他數(shù)組進行比較時同時使用鍵和值。
array array_diff_assoc( array $array1, array $array2 [, array $array3...] );
序號 | 參數(shù)及說明 |
---|---|
1 | array1 (必填) 是要與之比較的數(shù)組 |
2 | array2 (必填) 它是一個要與第一個數(shù)組進行比較的數(shù)組 |
3 | array3(選填) 它是一個要與第一個數(shù)組進行比較的數(shù)組 |
函數(shù)array_diff_assoc()返回一個數(shù)組,其中包含array1中的所有值,這些值在任何其他具有相同鍵的數(shù)組中都不存在。
此函數(shù)最早是在PHP版本4.3.0中引入的。
試試下面的實例。這兩個數(shù)組中都存在“ a” =>“ orange”和“ c” =>“ banana”,因此在結(jié)果中不會出現(xiàn)-
<?php $input1 = array( "a"=>"orange", "b"=>"mango", "c"=>"banana"); $input2 = array( "a"=>"orange", "b"=>"apple", "c"=>"banana"); print_r(array_diff_assoc($input1, $input2)); ?>測試看看?/?
輸出結(jié)果:
Array ( [b] => mango )
在這里,兩個數(shù)組對于所有對都有不同的鍵和相應(yīng)的值,例如"a"=>"orange"在第二個數(shù)組中不存在,類似地,其他鍵值對也不存在于第二個數(shù)組中,因此它們將在結(jié)果中可用-
<?php $input1 = array( "a"=>"orange", "b"=>"mango", "c"=>"banana"); $input2 = array( "a"=>"banana", "b"=>"apple", "c"=>"orange"); print_r(array_diff_assoc($input1, $input2)); ?>測試看看?/?
輸出結(jié)果:
Array ( [a] => orange [b] => mango [c] => banana )
下面示例說明了,僅當(dāng)(string)$elem1 ===(string)$elem2時,鍵=>值(key=>value)對中的兩個值才視為相等。
<?php $input1 = array(0, 5, 20); $input2 = array("00", "05", "20"); $result = array_diff_assoc($input1, $input2); print_r($result); ?>測試看看?/?
輸出結(jié)果:
Array ( [0] => 0 [1] => 5 )