Sortowanie tablic z różnymi flagami (SORT_NUMERIC, SORT_STRING)
Założenie: Nauczyć się sortować tablice w PHP z wykorzystaniem flag SORT_NUMERIC
i SORT_STRING
, aby zrozumieć, jak sortowanie działa dla różnych typów danych.
Krok po kroku:
- Przygotowanie tablicy z numerami wersji: Stwórzmy tablicę zawierającą numery wersji oprogramowania, które będą zawierały zarówno liczby, jak i litery.
- Sortowanie jako ciągi znaków (SORT_STRING): Użyjmy funkcji
sort()
z flagąSORT_STRING
. Zauważ, że sortowanie leksykograficzne nie uwzględnia wartości liczbowych. - Sortowanie jako liczby (SORT_NUMERIC): Teraz użyjmy funkcji
sort()
z flagąSORT_NUMERIC
. To poprawi sortowanie numerów wersji.
$wersje = ["1.0", "2.5", "1.10", "1.2", "2.1", "1.1"];
sort($wersje, SORT_STRING);
print_r($wersje);
Wynik pokaże, że “1.10” jest przed “1.2”, ponieważ porównanie odbywa się znak po znaku.
$wersje = ["1.0", "2.5", "1.10", "1.2", "2.1", "1.1"]; // Resetujemy tablicę
sort($wersje, SORT_NUMERIC);
print_r($wersje);
Wynik będzie już poprawnie posortowany numerycznie.
Ten przykład pokazuje, jak ważne jest wybranie odpowiedniej flagi sortowania w zależności od typu danych w tablicy. SORT_NUMERIC
jest niezbędne, gdy chcemy sortować wartości liczbowe, nawet jeśli są one reprezentowane jako ciągi znaków.