Hàm array_udiff_uassoc() trong PHP

Ví dụ

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

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

Chạy ví dụ

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

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

Ghi chú:hàm này sử dụng hai hàm tùy chỉnh của người dùng để so sánh; hàm đầu tiên so sánh tên khóa, hàm thứ hai so sánh giá trị khóa!

hàm này so sánh tên khóa và giá trị khóa của hai (hoặc nhiều) mảng và trả về một mảng tập hợp 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 ở bất kỳ tham số mảng nào khác (array2 hoặc array3 v.v.) các khóa và giá trị.

Giải thích

hàm array_udiff_uassoc() trả về array1 phần tử có trong mảng nhưng không có trong các mảng khác. Mảng trả về giữ nguyên tên khóa.

lưu ý với array_diff()array_udiff() khác biệt là tên khóa cũng được sử dụng để so sánh. Đồng thời so sánh tên khóa và giá trị khóa, chẳng hạn như "a"=>1 và "b"=>1 thì hai phần tử này không bằng nhau.

kiểm tra tên khóa (ký hiệu) cũng được thực hiện bởi hàm回调 myfunction_key được thực hiện. Điều này và array_udiff_assoc() của hàm thứ hai,后者 là sử dụng hàm nội bộ để so sánh chỉ số.

so sánh dữ liệu mảng là sử dụng hàm hồi quy do người dùng cung cấp myfunction_value được thực hiện. Trong việc này và array_diff_assoc() của hàm thứ hai,后者 là sử dụng hàm nội bộ để so sánh.

Cả hai hàm này đều có hai tham số sẽ được so sánh. Nếu tham số đầu tiên nhỏ hơn tham số thứ hai, hàm trả về số âm, nếu hai tham số bằng nhau, thì phải trả về 0, nếu tham số đầu tiên lớn hơn tham số thứ hai, thì trả về số dương.

Cú pháp

array_udiff_uassoc(array1,array2,array3...myfunction_key,myfunction_value)
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. Các mảng khác để so sánh với mảng đầu tiên.
myfunction_key

Bắt buộc. Tên hàm tùy chỉnh của người dùng để so sánh tên khóa mảng.

Giá trị chuỗi, định nghĩa hàm so sánh có thể gọi. Nếu tham số đầu tiên nhỏ hơn hoặc bằng lớn hơn tham số thứ hai, hàm so sánh phải trả về số nguyên nhỏ hơn hoặc bằng lớn hơn 0.

myfunction_value

Bắt buộc. Tên hàm tùy chỉnh của người dùng để so sánh giá trị khóa mảng.

Giá trị chuỗi, định nghĩa hàm so sánh có thể gọi. Nếu tham số đầu tiên nhỏ hơn hoặc bằng lớn hơn tham số thứ hai, hàm so sánh phải trả về số nguyên nhỏ hơn hoặc bằng lớn hơn 0.

Chi tiết kỹ thuật

Trả về giá trị: Trả về mảng khác biệt, mảng này 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 ở bất kỳ tham số mảng nào khác (array2 hoặc array3 v.v.) các khóa và giá trị.
PHP phiên bản: 5+