Funkcja PHP array_diff_ukey()
Przykład
Porównaj nazwy kluczy dwóch tablic (używając użytkownika-defined 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"=>"czerwony","b"=>"zielony","c"=>"niebieski"); $a2=array("a"=>"blue","b"=>"black","e"=>"blue"); $result=array_diff_ukey($a1,$a2,"myfunction"); print_r($result); ?>
Definicja i użycie
Funkcja array_diff_ukey() używa do porównania nazw kluczy dwóch (lub więcej) tablic i zwraca różnicę.
Komentarz:Funkcja ta używa użytkownika-defined funkcji do porównania nazw kluczy!
Funkcja ta porównuje nazwy kluczy dwóch (lub więcej) tablic i zwraca tablicę różnic, która zawiera wszystkie elementy z porównywanych tablic (array1) ale nie w żadnych innych parametrycznych tablicach (array2 lub array3 i tym podobne) kluczami.
Gramatyka
array_diff_ukey(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. Źrenictwo łańcucha znaków, który definiuje funkcję porównania wywoływanej. Jeśli pierwszy parametr jest mniejszy, równy lub większy niż drugi parametr, funkcja porównania musi zwrócić całkowitą liczbę mniejszą, równą lub większą niż 0. |
Opis
array_diff_ukey() zwraca tablicę, która zawiera wszystkie klucze array1 ale nie występujące w żadnych innych parametrycznych tablicach kluczach. Uwaga: relacja asocjacyjna jest zachowana. Różni się od array_diff(), ponieważ porównanie jest przeprowadzane na podstawie kluczy, a nie wartości.
Porównanie to jest przeprowadzane za pomocą funkcji zwrotnych dostarczonych przez użytkownika. Jeśli uważa się, że pierwszy parametr jest mniejszy, równy, lub większy od drugiego parametru, należy odpowiednio zwrócić liczbę całkowitą mniejszą niż zero, równą zero, lub większą niż zero.
Szczegóły techniczne
Wartość zwracana: | Zwróć tablicę różnic, która zawiera wszystkie kluczearray1) ale nie w żadnych innych parametrycznych tablicach (array2 lub array3 i tym podobne) kluczami. |
Wersja PHP: | 5.1+ |
Więcej przykładów
Przykład 1
Porównaj nazwy kluczy trzech tablic (używając funkcji użytkownika do porównywania nazw kluczy) i zwróć różnicę:
<?php function myfunction($a,$b) { if ($a===$b) { return 0; } return ($a>$b)?1:-1; } $a1=array("a"=>"czerwony","b"=>"zielony","c"=>"niebieski"); $a2=array("a"=>"czarny","b"=>"żółty","d"=>"brązowy"); $a3=array("e"=>"fioletowy","f"=>"biały","a"=>"złoty"); $result=array_diff_ukey($a1,$a2,$a3,"myfunction"); print_r($result); ?>