Hàm array_diff_ukey()
trong PHP là một hàm so sánh các mảng dựa trên khóa của chúng bằng một hàm so sánh do người dùng xác định. Hàm này cho phép người dùng tự định nghĩa một quy tắc so sánh tùy chỉnh giữa các khóa trong các mảng. Hãy cùng Vietnix tham khảo thêm về hàm array_diff_ukey()
trong PHP qua bài viết sau đây.
Hàm array_diff_ukey() là gì?
Hàm array_diff_ukey()
là một hàm tích hợp sẵn trong PHP. Nó được sử dụng để so sánh key của hai hoặc nhiều mảng bằng cách sử dụng hàm do người dùng xác định và trả về một mảng, đó là mảng 1 và mảng đó không có bất kỳ mảng nào khác như mảng 2, mảng 3 hoặc hơn…
Cú pháp | array_diff_ukey($array1, $array2, $array3..., arr_diffukeyFunction) |
Tham số | Hàm sẽ có tối thiểu 3 tham số và cả 3 đều là bắt buộc, các tham số khác là tùy chọn, mô tả các tham số như sau: – $array1(bắt buộc): Mảng sẽ được so sánh với các mảng khác.(Mảng đó sẽ được so sánh từ mảng 1). – $array2(bắt buộc): Mảng được so sánh với mảng đầu tiên. – $array3(Tùy chọn): Mảng được so sánh với mảng đầu tiên. – arr_diffukeyFunction(bắt buộc): Đây là hàm bắt buộc do người dùng xác định. Một chuỗi được xác định là hàm so sánh. Hàm so sánh trả về một số nguyên lớn hơn 0 nếu đối số thứ nhất lớn hơn đối số thứ hai. |
Giá trị trả về | Hàm array_diff_ukey() sẽ trả về một mảng chứa các mục từ mảng 1 không có trong các mảng khác, chẳng hạn như: (mảng2 , mảng 3, mảng 4,…). Nếu tất cả các giá trị có mặt trong các mảng khác, hàm trả về NULL. Kiểu giá trị trả về là một mảng (array). |
Bạn có thể xem ví dụ sau:
===== Input: $arr1 = array("one"=>"C Program", "two"=>"PHP Program", "three"=>"Java Program "); $arr2 = array("one"=>"Java Program", "two"=>"C++ Program", "six"=>"Java Program"); ===== Output: Array ( [three] => Java Program )
Trong ví dụ trên, hai giá trị đầu tiên của arr1 khớp với arr2 và giá trị cuối cùng không khớp nên hàm trả về giá trị cuối cùng.
Một ví dụ tham khảo khác:
===== Input: $arr1=array("one"=>"C Program", "two"=>"PHP Program", "three"=>"Java Program "); $arr2=array("one"=>"Java Program", "two"=>"C++ Program", "three"=>"Java Program"); ===== Output: Array ( )
Trong ví dụ trên, tất cả các giá trị được khớp với arr2 nên hàm trả về giá trị null.
Mọi người cũng xem:
Triển khai thành chương trình từ ví dụ
Ví dụ 1: Lấy hai mảng (mảng 1 và mảng 2) và sử dụng hàm so sánh key do người dùng xác định (diffukeyFunction).
<?php
// Program of array_diff_ukey function in PHP
function arr_diffukeyFunction($one, $two)
{
if ($one === $two) {
return 0;
}
return ($one > $two) ? 1 : -1;
}
// Driver Code
$arr1 = array(
"one" => "C Program",
"two" => "PHP Program",
"three" => "Java Program "
);
$arr2 = array(
"one" => "Java Program",
"two" => "C++ Program",
"six" => "Java Program"
);
$result = array_diff_ukey($arr1, $arr2, "arr_diffukeyFunction");
print_r($result);
?>
Output như sau:
Array ( [three] => Java Program )
Ví dụ 2: Lấy ba mảng (mảng1, mảng2 và mảng3) và sử dụng hàm so sánh key do người dùng xác định (diffukeyFunction).
<?php
// Program of array_diff_ukey function in PHP
function arr_diffukeyFunction($one, $two)
{
if ($one === $two) {
return 0;
}
return ($one > $two) ? 1 : -1;
}
// Driver Code
$arr1 = array(
"one" => "C Program",
"two" => "PHP Program",
"three" => "Java Program "
);
$arr2 = array(
"one" => "XML Program",
"two" => "C++ Program",
"four" => "CSS Program"
);
$arr3 = array(
"five" => "MVC Program",
"six" => "C# Program",
"one" => "ASP .NET Program"
);
$result = array_diff_ukey($arr1, $arr2, $arr3, "arr_diffukeyFunction");
print_r($result);
?>
Output như sau:
Array ( [three] => Java Program )
Ví dụ 3: Trả về giá trị Null nếu tất cả giá trị trùng với các mảng khác.
<?php
// Program of array_diff_ukey function in PHP
function arr_diffukeyFunction($one, $two)
{
if ($one === $two) {
return 0;
}
return ($one > $two) ? 1 : -1;
}
// Driver Code
$arr1 = array(
"one" => "C Program",
"two" => "PHP Program"
);
$arr2 = array(
"one" => "Java Program",
"two" => "C++ Program"
);
$result = array_diff_ukey($arr1, $arr2, "arr_diffukeyFunction");
print_r($result);
?>
Output như sau:
Array ( )
Ví dụ 4: Chỉ lấy 1 mảng (array1) và dùng hàm so sánh key do người dùng xác định (diffukeyFunction). Tuy nhiên không có output và hiển thị thông báo “RUNTIME ERROR”.
<?php
//Program of array_diff_ukey function in PHP
function arr_diffukeyFunction($one, $two)
{
if ($one === $two) {
return 0;
}
return ($one > $two) ? 1 : -1;
}
// Driver Code
$arr1 = array(
"one" => "C Program",
"two" => "PHP Program",
"three" => "Java Program "
);
//take only one array
$result = array_diff_ukey($arr1, "arr_diffukeyFunction");
print_r($result);
?>
Output như sau:
No Output
Ngoài ra, xuất hiện dòng cảnh báo:
PHP Warning: array_diff_ukey(): at least 3 parameters are required, 2 given in /home/c0177af9f69e897ad93cc9855a9ae415.php on line 23
Lời kết
Vietnix hy vọng nội dung bài viết trên đã giúp bạn hiểu rõ hơn về hàm array_diff_ukey()
trong PHP. Ngoài ra, bạn cũng có thể tham khảo thêm các bài viết khác tại vietnix.vn để hiểu hơn về lập trình, chúc bạn thành công!