Hàm array_uintersect_uassoc() so sánh cả khóa và giá trị của mảng bằng các hàm do người dùng định nghĩa, trả về mảng giao nhau (intersection) giữ nguyên khóa.
Cú pháp
array_uintersect_uassoc(array1, array2, array3, ..., compare_func_key, compare_func_val)
Tham số
array1 – Mảng đầu tiên để so sánh.
array2 – Mảng thứ hai so sánh với.
array3, ... – Các mảng khác để so sánh.
compare_func_key – Hàm so sánh khóa. Trả về <0, =0, >0.
compare_func_val – Hàm so sánh giá trị. Trả về <0, =0, >0.
Giá trị trả về
Trả về mảng chứa các phần tử của array1 có cả khóa và giá trị xuất hiện trong tất cả các mảng khác.
Ví dụ
<?php
function compare_func_key($a, $b) {
if ($a === $b) return 0;
return ($a > $b) ? 1 : -1;
}
function compare_func_val($a, $b) {
if ($a === $b) return 0;
return ($a > $b) ? 1 : -1;
}
$arr1 = array("a" => "laptop", "b" => "keyboard", "c" => "mouse");
$arr2 = array("a" => "laptop", "b" => "keyboard", "c" => "headphone");
$res = array_uintersect_uassoc($arr1, $arr2, "compare_func_key", "compare_func_val");
print_r($res);
?>
Kết quả
Array ( [a] => laptop [b] => keyboard )