Hàm array_diff_uassoc() tính hiệu của các mảng dựa trên cả khóa và giá trị, sử dụng hàm so sánh do người dùng định nghĩa cho cả khóa và giá trị. Trả về mảng chứa các phần tử của mảng đầu tiên không xuất hiện trong bất kỳ mảng nào khác (so sánh cả khóa lẫn giá trị).
Cú pháp
array_diff_uassoc(array1, array2, array3, ..., compare_func)
Tham số
array1 – Mảng cơ sở. Bắt buộc.
array2 – Mảng so sánh. Bắt buộc.
array3, array4, ... – Các mảng khác. Tùy chọn.
compare_func – Hàm callback so sánh (dùng cho cả khóa và giá trị). Trả về <0, =0, >0.
Giá trị trả về
Trả về mảng chứa các entry của array1 không có trong mảng khác (so sánh khóa và giá trị theo hàm).
Ví dụ
<?php
function compare_func($a, $b) {
if ($a === $b) return 0;
return ($a > $b) ? 1 : -1;
}
$arr1 = array("a" => "laptop", "b" => "keyboard", "c" => "mouse", "monitor");
$arr2 = array("a" => "laptop", "harddisk", "RAM", "monitor");
$res = array_diff_uassoc($arr1, $arr2, "compare_func");
print_r($res);
?>
Kết quả
Array ( [b] => keyboard [c] => mouse [0] => monitor )