Hàm array_diff_assoc() tính hiệu của các mảng dựa trên cả khóa và giá trị (so sánh chuẩn ===). Khác với array_diff() chỉ so sánh giá trị, array_diff_assoc() so sánh cả khóa lẫn giá trị. Trả về mảng chứa các phần tử của mảng đầu tiên không có trong các mảng còn lại.
Cú pháp
array_diff_assoc(array1, array2, array3, array4, ...)
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.
Giá trị trả về
Trả về mảng chứa các entry của array1 không xuất hiện trong mảng khác (so sánh khóa và giá trị).
Ví dụ
<?php
$arr1 = array("p" => "football", "q" => "cricket", "r" => "hockey");
$arr2 = array("s" => "football", "t" => "cricket");
$res = array_diff_assoc($arr1, $arr2);
print_r($res);
?>
Kết quả
Array ( [p] => football [q] => cricket [r] => hockey )
Giải thích: Mặc dù giá trị "football", "cricket" có trong arr2, nhưng khóa khác ("p" vs "s", "q" vs "t") nên được coi là khác nhau và giữ lại.