Hàm array_uintersect() của PHP

Mô hình

So sánh giá trị khóa của hai mảng (sử dụng hàm so sánh tùy chỉnh) và trả về giao:

<?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_uintersect($a1,$a2,"myfunction");
print_r($result);
?>

Chạy ví dụ

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

Hàm array_uintersect() được sử dụng để so sánh giá trị khóa của hai (hoặc nhiều) mảng và trả về giao.

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

Hàm này so sánh giá trị khóa của hai (hoặc nhiều) mảng và trả về mảng giao, bao gồm tất cả các phần tử trong các mảng được so sánh (mảng1) cũng như trong bất kỳ mảng tham số khác (mảng2 hoặc mảng3 và vân vân) của khóa.

Cú pháp

array_uintersect(mảng1,mảng2,mảng3...myfunction)
Tham số Mô tả
mảng1 Bắt buộc. Mảng đầu tiên so sánh với các mảng khác.
mảng2 Bắt buộc. 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

Bắt buộc. 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.

Giải thích

Sử dụng hàm đệm tùy chỉnh của người dùng myfunction Để tính giao của hai hoặc nhiều mảng (tức là mảng1 Chứa tất cả các phần tử của mảng mà cũng xuất hiện trong bất kỳ mảng nào khác), và trả về mảng kết quả.

Chỉ tiến hành so sánh giá trị khóa, không so sánh tên khóa, ví dụ "a"=>1 và "b"=>1 hai phần tử này được coi là bằng nhau.

myfunction Hàm được chỉ định bởi tham số để so sánh các phần tử có bằng nhau không.myfunction Hàm 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ề một giá trị âm, nếu hai tham số bằng nhau, thì trả về 0, nếu tham số đầu tiên lớn hơn tham số thứ hai, thì trả về một giá trị dương.

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ột mảng chứa tất cả các phần tử mảng1 cùng thời điểm cũng như trong tất cả các mảng khác.

Trả về một mảng giao, bao gồm tất cả các phần tử có trong các mảng được so sánh (mảng1) cũng như trong bất kỳ mảng tham số khác (mảng2 hoặc mảng3 và vân vân) của khóa.

Phiên bản PHP: 5+

Ví dụ thêm

Ví dụ 1

So sánh 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 giá trị khóa) và trả về giao.

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

Chạy ví dụ