Funkcja array_uintersect() w PHP

Przykład

Porównuje wartości kluczy dwóch tablic (używając własnej funkcji do porównywania wartości kluczy) i zwraca przecięcie:

<?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);
?>

Uruchomienie przykładu

Definicja i użycie

Funkcja array_uintersect() porównuje wartości kluczy dwóch (lub więcej) tablic i zwraca przecięcie.

Komentarz:Funkcja ta używa własnej funkcji do porównywania wartości kluczy.

Funkcja ta porównuje dwa (lub więcej) tablice kluczy i zwraca tablicę przecięcia, która zawiera wszystkie elementy, które istnieją w porównywanych tablicach (array1) oraz w każdym innym parametrycznym tablicy (array2 lub array3 i tak dalej) kluczami wartości.

Syntaktyka

array_uintersect(array1,array2,array3...myfunction)
Parametry Opis
array1 Wymagane. Pierwsza tablica do porównania z innymi tablicami.
array2 Wymagane. Tablica do porównania z pierwszą tablicą.
array3,... Opcjonalne. Inne tablice do porównania z pierwszą tablicą.
myfunction

Wymagane. Wartość ciągła, definiująca funkcję porównującą do wywołania.

Jeśli pierwszy parametr jest mniejszy lub równy, lub większy niż drugi parametr, funkcja porównawcza musi zwrócić całkowitą liczbę mniejszą lub równą zero.

Opis

używając własnej funkcji zwrotnej myfunction do obliczenia przecięcia dwóch lub więcej tablic (tj. elementów, które istnieją zarówno w jednej tablicy, jak i w innych tablicach) array1 zawiera wszystkie elementy wszystkich innych tablic (tj. elementy, które istnieją zarówno w tej tablicy, jak i w innych tablicach), a następnie zwraca tablicę wynikową.

Porównuje tylko wartości kluczy, bez porównywania nazw kluczy, np. "a"=>1 i "b"=>1 te dwa elementy są uważane za równe.

myfunction Funkcja określona przez parametry porównuje elementy pod kątem równości.myfunction Funkcja ma dwa parametry do porównania. Jeśli pierwszy parametr jest mniejszy od drugiego, funkcja zwraca ujemną liczbę, jeśli parametry są równe, zwraca 0, jeśli pierwszy parametr jest większy od drugiego, zwraca liczbę pozytywną.

Imiona kluczy w zwracanej tablicy pozostają bez zmian.

Szczegóły techniczne

Wartość zwrócona:

Zwróci tablicę, która zawiera wszystkie elementy znajdujące się w array1 w których znajdują się jednostki, które są wspólne dla wszystkich tablic.

Zwróci tablicę przecięcia, która zawiera wszystkie elementy, które są wspólne dla wszystkich tablic porównywanych (array1) oraz w każdym innym parametrycznym tablicy (array2 lub array3 i tak dalej) kluczami wartości.

Wersja PHP: 5+

Więcej przykładów

Przykład 1

Porównaj klucze wartości trzech tablic (używając funkcji użytkownika do porównywania kluczy wartości) i zwróć przecięcie:

<?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);
?>

Uruchomienie przykładu