PHP ofertuje cały zestaw funkcji służących do sortowania tablic. Są
to: asort(), arsort(),
ksort(), rsort(),
sort(), uasort(),
usort(), i uksort().
Większość funkcji (oprócz trzech ostatnich) przyjmuje jeden
parametr: zmienną zawierającą tablicę do posortowania. Żadna z
funkcji nie zwraca żadnego wyniku.
Funkcje sortujące
-
asort()
sortuje tablice asocjacyjne zachowując przypisanie kluczy do wartości
<?php $owoce = array ("d"=>"mango", "a"=>"papaja", "b"=>"banan", "c"=>"aronia"); asort ($owoce); reset ($owoce); // Funkcja ta powoduje powrót do pierwszego elementu tablicy while (list ($klucz, $wartosc) = each ($owoce)) { echo "$klucz = $wartoscn"; } ?>
|
Wynikiem działania powyższego przykładu powinno być:
c = aronia
b = banan
d = mango
a = papaja
-
arsort()
sortuje w odwrotnej kolejności tablice asocjacyjne
zachowując przypisanie kluczy do wartości. Funkcja prawie
identyczna jak poprzednia, tyle że dane sortowane są "od
tyłu".
-
ksort()
sortuje tablice asocjacyjne według kluczy. Powyższy przykład po podmianie funkcji
asort na ksort powinna dać poniższy wynik:
a = papaja
b = banan
c = aronia
d = mango
-
rsort()
sortuje zwykłe tablice (nie asocjacyjne) w odwróconej kolejności
-
sort()
sortuje zwykłe tablice (nie asocjacyjne) w kolejności alfabetycznej
-
uasort()
funkcja sortująca tablice asocjacyjne za pomocą
zdefiniowanej przez użytkownika funkcji porównującej
elementy (nazwa funkcji jest podawana za pomocą drugiego
parametru)
-
usort()
funkcja sortująca zwykłe tablice za pomocą funkcji zdefiniowanej
przez użytkownika
-
uksort()
funkcja sortująca tablice asocjacyjne według klucza za pomocą
funkcji zdefiniowanej przez użytkownika.
W trzech ostatnich funkcjach sortujących trzeba jako drugi
parametr podać funkcję porównującą elementy tablicy. Jak
definiuje się funkcje opisane jest w jednym z następnych
rozdziałów. Funkcje takie pobierają 2 argumenty. Zwracane jest 0
jeśli argumenty są sobie równe, -1 jeśli pierwszy argument jest
mniejszy od drugiego a 1 jeśli jest większy.