PHP hàm array_diff_uassoc()

Mô hình

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 để 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("d"=>"red","b"=>"green","e"=>"blue");
$result=array_diff_uassoc($a1,$a2,"myfunction");
print_r($result);
?>

Chạy ví dụ

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

Hàm array_diff_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 hàm tùy chỉnh để so sánh tên 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 khác nhau, bao gồm tất cả các phần tửmảng1) nhưng không có trong bất kỳ tham số mảng nào khác (mảng2 hoặc mảng3 v.v.) của tên khóa và giá trị khóa.

Ngữ pháp

array_diff_uassoc(mảng1,mảng2,mảng3...myfunction);
Tham số Mô tả
mảng1 Được yêu cầu. Mảng đầu tiên để so sánh với các mảng khác.
mảng2 Được yêu cầu. Mảng để so sánh với mảng đầu tiên.
mảng3,... Tùy chọn. Các mảng khác để so sánh với mảng đầu tiên.
myfunction Được yêu cầu. Định nghĩa chuỗi có thể 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.

Mô tả

Hàm array_diff_uassoc() sử dụng hàm回调 tùy chỉnh (callback) để kiểm tra chỉ mục để tính tập hợp khác nhau giữa hai hoặc nhiều mảng. Trả về một mảng bao gồm các phần tử mảng1 中但是不在任何其他参数数组中的值。

Giá trị trong mảng nhưng không có trong bất kỳ tham số mảng nào khác.

Lưu ý, khác với hàm array_diff(), tên khóa cũng cần được so sánh.

Tên khóa trong mảng trả về giữ nguyê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 giá trị trong các mảng được so sánh (mảng1) nhưng không có trong bất kỳ tham số mảng nào khác (mảng2 hoặc mảng3 v.v.) của tên khóa và giá trị khóa.
Phiên bản PHP: 5+

Các ví dụ khác

Ví dụ 1

So sánh tên khóa và giá trị 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"=>"red","b"=>"green","d"=>"blue");
$a3=array("e"=>"yellow","a"=>"red","d"=>"blue");
$result=array_diff_uassoc($a1,$a2,$a3,"myfunction");
print_r($result);
?>

Chạy ví dụ