array_diff_uassoc
(PHP 5, PHP 7, PHP 8)
array_diff_uassoc — 用使用者提供的回撥函式做索引檢查來計算陣列的差集
說明
比較了 array
和 arrays
並返回不同之處。
注意和
array_diff() 不同的是鍵名也用於比較。
和 array_diff_assoc() 不同的是使用了使用者自定義的回撥函式,而不是內建的函式。
參數
-
array
-
待比較的陣列
-
arrays
-
要比較的陣列
-
key_compare_func
-
在第一個參數小於,等於或大於第二個參數時,該比較函式必須相應地返回一個小於,等於或大於 0 的整數。
返回值
返回一個 array,該陣列包括了所有在
array
中但是不在任何其它參數陣列中的值。
範例
示例 #1 array_diff_uassoc() 例子
上面的例子中 "a" => "green"
出現在兩個陣列中因此不在函式的輸出中。但是
0 => "red"
卻在輸出中,因為第二個參數中的
"red"
的鍵名是 1
。
<?php
function key_compare_func($a, $b)
{
if ($a === $b) {
return 0;
}
return ($a > $b)? 1:-1;
}
$array1 = array("a" => "green", "b" => "brown", "c" => "blue", "red");
$array2 = array("a" => "green", "yellow", "red");
$result = array_diff_uassoc($array1, $array2, "key_compare_func");
print_r($result);
?>
以上例程會輸出:
Array ( [b] => brown [c] => blue [0] => red )
通過使用者提供的回撥函式檢查兩個陣列的索引是否相等。
註釋
注意:
注意本函式只檢查了多維陣列中的一維。當然可以用
array_diff_uassoc($array1[0], $array2[0], "key_compare_func");
檢查更深的維度。
參見
- array_diff() - 計算陣列的差集
- array_diff_assoc() - 帶索引檢查計算陣列的差集
- array_udiff() - 用回撥函式比較數據來計算陣列的差集
- array_udiff_assoc() - 帶索引檢查計算陣列的差集,用回撥函式比較數據
- array_udiff_uassoc() - 帶索引檢查計算陣列的差集,用回撥函式比較數據和索引
- array_intersect() - 計算陣列的交集
- array_intersect_assoc() - 帶索引檢查計算陣列的交集
- array_uintersect() - 計算陣列的交集,用回撥函式比較數據
- array_uintersect_assoc() - 帶索引檢查計算陣列的交集,用回撥函式比較數據
- array_uintersect_uassoc() - 帶索引檢查計算陣列的交集,用單獨的回撥函式比較數據和索引