Sortowanie tablic z użyciem funkcji porównującej (usort)
Założenie: Nauczymy się sortować tablicę asocjacyjną zawierającą dane o osobach, według ich wieku, używając funkcji `usort` i własnej funkcji porównującej.
Krok po kroku:
- Tworzenie tablicy z danymi: Zdefiniujmy tablicę asocjacyjną przechowującą imiona i wiek osób.
- Tworzenie funkcji porównującej: Napiszmy funkcję, która będzie porównywała wiek dwóch osób. Funkcja ta musi zwrócić:
- Wartość ujemną, jeśli pierwsza osoba jest młodsza.
- Zero, jeśli osoby mają ten sam wiek.
- Wartość dodatnią, jeśli pierwsza osoba jest starsza.
- Sortowanie tablicy: Użyjmy funkcji `usort` do posortowania tablicy `$osoby` za pomocą zdefiniowanej funkcji `porownajWiek`.
- Wyświetlanie posortowanej tablicy: Wyświetlmy posortowaną tablicę, aby zobaczyć efekt.
$osoby = [
['imie' => 'Jan', 'wiek' => 30],
['imie' => 'Anna', 'wiek' => 25],
['imie' => 'Piotr', 'wiek' => 35],
['imie' => 'Maria', 'wiek' => 28]
];
function porownajWiek($a, $b) {
return $a['wiek'] - $b['wiek'];
}
usort($osoby, 'porownajWiek');
print_r($osoby);
Powyższy kod posortuje tablicę `$osoby` rosnąco, według wieku. Wynik `print_r($osoby)` pokaże posortowaną listę.
Ten przykład pokazuje podstawowe zastosowanie funkcji `usort` w PHP. Zachęcamy do eksperymentowania z różnymi funkcjami porównującymi, aby sortować tablice według różnych kryteriów!