Funkcja PHP usort() - sortowanie z wywołaniem zwrotnym

Funkcja PHP usort()

Funkcja PHP usort() sortuje tablicę według wartości, wykorzystując funkcję porównywania zdefiniowaną przez użytkownika i przekazaną jej jako wywołanie zwrotne.

Funkcja usort() przypisuje sortowanym elementom tablicy nowe klucze, a więc usuwa pierwotne, jeśli istniały.

Składnia funkcji PHP usort()

Funkcja PHP usort() ma następującą składnię:

usort(array &$array, callable $callback): true

Parametry

Parametr Opis
array Parametr obowiązkowy. Tablica do posortowania.
callback Parametr obowiązkowy. Funkcja wywołania zwrotnego, która ma zostać użyta do porównywania elementów sortowanej tablicy. Należy przekazać jej nazwę jako łańcuch i powinna ona zwracać następujące wartości:
  • Liczba całkowita mniejsza od zera, jeśli pierwszy argument jest mniejszy od drugiego
  • 0, jeśli argumenty są równe — w takim przypadku funkcja nie zmienia ich pierwotnej kolejności
  • Liczba większa od zera, jeśli pierwszy argument jest większy od drugiego

Prototyp funkcji wywołania zwrotnego:

callback(mixed $a, mixed $b): int

Wartość zwrotna

Funkcja PHP usort() zawsze zwraca wartość logiczną true.

Typ zwrotny: bool.

Dodatkowe przykłady

Przykład przedstawiony na początku strony wykorzystuje operator PHP statek kosmiczny i funkcję strzałkową, dzięki czemu jest bardzo zwięzły. Poniżej znajduje się ta sama funkcja, tylko z funkcją zwrotną zaimplementowaną w mniej zwięzły sposób.


function cmp($val1, $val2)
{  
  if ($val1 < $val2) return -1;
  if ($val1 == $val2) return 0;
  if ($val1 > $val2) return 1;
}
usort($values, "cmp");
Udostępnij:
Share

Podobał Ci się ten artykuł?

Oceń go!

Średnia 5 / 5. Liczba głosów: 3

Jeszcze nikt nie głosował. Wyprzedź innych i zagłosuj.

Skoro spodobał Ci się ten artykuł...

Poleć go znajomym!

Ojej :( Powiedz nam, co powinniśmy poprawić!

blank
Podoba Ci się ta strona?

Pomóż nam się rozwijać, wykupując płatne konto. Dzięki temu będziemy mogli tworzyć dla Ciebie jeszcze więcej ciekawych treści, a Ty pozbędziesz się reklam.

Dodaj komentarz