Funkcja array_diff_uassoc() w PHP
Przykład
Porównaj nazwy kluczy i wartości w dwóch tablicach (używając użytkownika-definedej funkcji do porównania nazw kluczy) i zwróć różnicę:
<?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); ?>
Definicja i użycie
Funkcja array_diff_uassoc() służy do porównania nazw kluczy i wartości w dwóch (lub więcej) tablicach i zwraca różnicę.
Komentarz:Funkcja ta używa użytkownika-definedej funkcji do porównania nazw kluczy!
Funkcja ta porównuje nazwy kluczy i wartości w dwóch (lub więcej) tablicach i zwraca tablicę różnic, która zawiera wszystkie elementy obecne warray1) ale nie w żadnym innym parametrycznym tablicy (array2 lub array3 itp.) kluczami i wartościami.
Gramatyka
array_diff_uassoc(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. Definiowanie łańcucha znakowego funkcji, która może być wywoływana. Jeśli pierwszy parametr jest mniejszy, równy lub większy niż drugi parametr, funkcja musi zwracać całkowitą liczbę mniejszą, równą lub większą niż 0. |
Opis
Funkcja array_diff_uassoc() używa użytkownika-definedego funkcji zwrotnego (callback) do sprawdzania indeksów w celu obliczenia różnicy między dwoma lub większą liczbą tablic. Zwraca tablicę, która zawiera wszystkie elementy, które są obecne w array1 ale nie w żadnej innej parametrycznej tablicy.}
Uwaga, w przeciwieństwie do funkcji array_diff(), porównywane są również nazwy kluczy.
Parametr myfunction jest funkcją użytkownika, która jest używana do porównywania dwóch tablic i musi mieć dwa parametry - nazwy kluczy do porównania. Dlatego zachowanie tej funkcji jest odwrotne do funkcji array_diff_assoc(), która używa wewnętrznej funkcji do porównywania.
W zwracanej tablicy nazwy kluczy pozostają takie same.
Szczegóły techniczne
Wartość zwrócona: | Zwróć tablicę różnicy, która zawiera wszystkie wartości z porównywanych tablic (array1) ale nie w żadnym innym parametrycznym tablicy (array2 lub array3 itp.) kluczami i wartościami. |
Wersja PHP: | 5+ |
Więcej przykładów
Przykład 1
Porównaj nazwy kluczy i wartości trzech tablic (używając funkcji użytkownika do porównania nazw kluczy) i zwróć różnicę:
<?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); ?>