Hàm array_diff_ukey() của PHP

Mô hình

So sánh tên khóa của hai mảng (sử dụng hàm so sánh tùy chỉnh cho tên khóa) và trả về tập khác nhau:

<?php
function myfunction($a,$b)
{
if ($a===$b)
  {
  return 0;
  }
  return ($a>$b)?1:-1;
}
$a1=array("a"=>"red","b"=>"green","c"=>"blue");
$a2=array("a"=>"blue","b"=>"black","e"=>"blue");
$result=array_diff_ukey($a1,$a2,"myfunction");
print_r($result);
?>

Chạy ví dụ

Định nghĩa và cách sử dụng

Hàm array_diff_ukey() được sử dụng để so sánh tên khóa của hai (hoặc nhiều) mảng và trả về tập khác nhau.

Ghi chú:Hàm này sử dụng hàm so sánh tùy chỉnh của người dùng cho tên khóa!

Hàm này so sánh tên khóa của hai (hoặc nhiều) mảng và trả về một mảng khác nhau bao gồm tất cả các phần tử trong các mảng được so sánh (array1v.v.) nhưng không có trong bất kỳ tham số mảng khác nào (array2 hoặc array3 v.v.) của tên khóa.

Cú pháp

array_diff_ukey(array1,array2,array3...myfunction);
Tham số Mô tả
array1 Bắt buộc. Mảng đầu tiên để so sánh với các mảng khác.
array2 Bắt buộc. Mảng để so sánh với mảng đầu tiên.
array3,... Tùy chọn. Mảng khác để so sánh với mảng đầu tiên.
myfunction Bắt buộc. Định nghĩa chuỗi gọi hàm so sánh. Nếu tham số đầu tiên nhỏ hơn, bằng hoặc lớn hơn tham số thứ hai, hàm so sánh phải trả về số nguyên nhỏ hơn, bằng hoặc lớn hơn 0.

Giải thích

array_diff_ukey() trả về một mảng bao gồm tất cả các tên khóa xuất hiện array1 trong nhưng không xuất hiện trong bất kỳ tham số mảng nào khác của các giá trị tên khóa. Lưu ý rằng mối quan hệ liên kết được giữ nguyên. Khác với array_diff(), việc so sánh dựa trên tên khóa而不是 giá trị.

So sánh này được thực hiện thông qua hàm回调 do người dùng cung cấp. Nếu cần phải trả về một số nguyên nhỏ hơn, bằng, hoặc lớn hơn nếu tham số đầu tiên nhỏ hơn, bằng, hoặc lớn hơn tham số thứ hai thì phải trả về. Một số nguyên nhỏ hơn, bằng, hoặc lớn hơn.

Chi tiết kỹ thuật

Trả về giá trị: Trả về mảng khác nhau, mảng này bao gồm tất cả các khóa trong các mảng được so sánh (array1v.v.) nhưng không có trong bất kỳ tham số mảng khác nào (array2 hoặc array3 v.v.) của tên khóa.
Phiên bản PHP: 5.1+

Thêm ví dụ

Ví dụ 1

So sánh tên khóa của ba mảng (sử dụng hàm tùy chỉnh của người dùng để so sánh tên khóa) và trả về tập hợp khác nhau:

<?php
function myfunction($a,$b)
{
if ($a===$b)
  {
  return 0;
  }
  return ($a>$b)?1:-1;
}
$a1=array("a"=>"red","b"=>"green","c"=>"blue");
$a2=array("a"=>"black","b"=>"yellow","d"=>"brown");
$a3=array("e"=>"purple","f"=>"white","a"=>"gold");
$result=array_diff_ukey($a1,$a2,$a3,"myfunction");
print_r($result);
?>

Chạy ví dụ