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