Tác dụng của hàm array_diff_uassoc()
Hàm này array_diff_uassoc()
so sánh các giá trị của hai hoặc nhiều mảng và trả về sự khác biệt bằng cách kiểm tra khóa bổ sung bằng cách sử dụng hàm so sánh khóa do người dùng xác định.
Bảng sau đây tóm tắt các chi tiết kỹ thuật của hàm này.
Giá trị trả về: | Trả về một mảng chứa tất cả các phần tử từ array1 không có trong bất kỳ mảng nào khác. |
---|---|
Phiên bản: | PHP5+ |
cú pháp
Cú pháp cơ bản của hàm array_diff_uassoc()
được đưa ra với:
Ví dụ sau đây cho thấy hàm array_diff_uassoc()
đang hoạt động.
Ví dụ
<?php
// Define key comparison function
function compare($a, $b){
// Converting key to lowercase
$a = strtolower($a);
$b = strtolower($b);
if($a == $b){
return 0;
}
return ($a < $b) ? -1 : 1;
}
// Sample arrays
$array1 = array("a"=>"apple", "b"=>"ball", "c"=>"cat", "dog");
$array2 = array("A"=>"APPLE", "B"=>"ball", "C"=>"camel");
// Computing the difference
$result = array_diff_uassoc($array1, $array2, "compare");
print_r($result);
?>
Lưu ý: Hàm so sánh khóa phải trả về một số nguyên bằng 0 nếu cả hai khóa bằng nhau, một số nguyên nhỏ hơn 0 nếu khóa đầu tiên nhỏ hơn khóa thứ hai và một số nguyên lớn hơn 0 nếu khóa đầu tiên lớn hơn khóa thứ hai chìa khóa.
Ngoài ra, bạn có thể chỉ cần sử dụng Hàm strcasecmp() trong PHP để thực hiện so sánh chuỗi không phân biệt chữ hoa chữ thường và trả về < 0
nếu str1 nhỏ hơn str2; > 0
nếu str1 lớn hơn str2 và 0
nếu chúng bằng nhau. Do đó, ví dụ trên có thể được viết lại như sau:
Ví dụ
<?php
// Sample arrays
$array1 = array("a"=>"apple", "b"=>"ball", "c"=>"cat", "dog");
$array2 = array("A"=>"APPLE", "B"=>"ball", "C"=>"camel");
// Computing the difference
$result = array_diff_uassoc($array1, $array2, "strcasecmp");
print_r($result);
?>
Thông số
Hàm array_diff_uassoc()
chấp nhận các tham số sau.
Tham số | Sự miêu tả |
---|---|
array1 | Yêu cầu. Chỉ định mảng để so sánh từ đó. |
array2 | Yêu cầu. Chỉ định một mảng để so sánh. |
... | Không bắt buộc. Chỉ định nhiều mảng hơn để so sánh. |
key_compare_function | Yêu cầu. Chỉ định hàm gọi lại để sử dụng để so sánh khóa. |
Thêm ví dụ
Dưới đây là một số ví dụ khác cho thấy hàm array_diff_uassoc()
thực sự hoạt động như thế nào:
Ví dụ sau minh họa cách so sánh các khóa và giá trị của ba mảng và nhận sự khác biệt bằng cách sử dụng hàm so sánh khóa do người dùng cung cấp.
Ví dụ
<?php
// Sample arrays
$array1 = array("a"=>"apple", "b"=>"ball", "c"=>"cat", "dog");
$array2 = array("A"=>"ant", "B"=>"ball", "C"=>"camel");
$array3 = array("a"=>"airplane", "b"=>"ball");
// Computing the difference
$result = array_diff_uassoc($array1, $array2, $array3, "strcasecmp");
print_r($result);
?>