Hàm array_uintersect() trong PHP có nhiệm vụ lấy ra các giá trị trùng lặp của 2 mảng qua hàm callback.
Hàm này được sử dụng trên PHP5 và PHP7.
Cú pháp
Cú pháp hàm array_uintersect() trong PHP như sau:
array_uintersect ( array $array1 , array $array2 [, array $... ], callable $value_compare_func ) : array
Tham số truyền vào
- $array1 mảng được truyền vào.
- $array2 mảng được truyền vào.
- $value_compare_func là hàm callback.
Giá trị trả về
Hàm array_uintersect() trả về tất cả các VALUE ở mảng số 1, có tồn tại ở tất cả các mảng còn lại.
Ví dụ minh họa
<?php
$input = array("a" => "green", "red", "b" => "green", "blue", "red");
$result = array_unique($input);
<?php
$array1 = array("a" => "green", "b" => "brown", "c" => "blue", "red");
$array2 = array("a" => "GREEN", "B" => "brown", "yellow", "red");
print_r(array_uintersect($array1, $array2, "strcasecmp"));
?>
Kết quả trả về
Array ( [a] => green [b] => brown [0] => red )
Ứng dụng
Khi bạn sử dụng một callback tự tạo, bạn cần chú ý tới giá trị trả về trong hàm callback đó, thông thường bạn sẽ dễ bị mắc lỗi sau.
<?php
function array_has_duplicates(array $array)
{
$uniq = array_unique($array);
return count($uniq) != count($array);
}
<?php
function myfunction($v1,$v2)
{
if ($v1===$v2)
{
return 0;
}
return 1;
}
$a1=array(1, 2, 4);
$a2=array(1, 3, 4);
print_r(array_uintersect($a1,$a2,"myfunction"));
?>
Bạn có thể thấy vấn đề trong hàm này, bạn không thể trả về 0 nếu so sánh đúng và 1 nếu so sánh sai, vì vậy cần sửa lại hàm này như sau.
<?php
function myfunction($v1,$v2)
{
if ($v1===$v2)
{
return 0;
}
if ($v1 > $v2) return 1;
return -1;
}
$a1=array(1, 2, 4);
$a2=array(1, 3, 4);
print_r(array_uintersect($a1,$a2,"myfunction"));
?>
Các hàm liên quan
- Hàm array_intersect() lấy các phần tử giao của 2 mảng .
- Hàm array_intersect_assoc() lấy các phần tử giao của 2 mảng, có so sánh KEY.
- Hàm array_uintersect_assoc() lấy các phần tử giao của 2 mảng, có so sánh KEY bằng Callback.
- Hàm array_uintersect_uassoc() lấy các phần tử giao của 2 mảng, có so sánh KEY và VALUE bằng Callback.
Hi vọng với bài viết này, bạn đã hiểu rõ cách sử dụng hàm array_uintersect() trong PHP. Nếu thấy bài viết hay và ý nghĩa, hãy like và chia sẻ với bạn bè để mọi người cùng nhau học tập nhé.
Cảm ơn bạn đã ghé thăm codetutam.com
