Sortowanie tablic z użyciem callbacków
Założenie: Nauczymy się sortować tablice w PHP za pomocą funkcji callback, które definiują sposób sortowania.
Krok po kroku:
- Przygotowanie danych: Zdefiniujmy tablicę asocjacyjną reprezentującą listę produktów:
- Funkcja callback do sortowania po kategorii: Stwórzmy funkcję, która porównuje dwa elementy tablicy na podstawie kategorii:
- Sortowanie tablicy: Użyjmy funkcji `usort` do posortowania tablicy `$produkty` za pomocą naszej funkcji callback `porownajKategorie`:
- Wyświetlenie posortowanej tablicy: Wyświetlmy posortowaną tablicę:
$produkty = [
['nazwa' => 'Produkt A', 'kategoria' => 'Elektronika', 'cena' => 100],
['nazwa' => 'Produkt B', 'kategoria' => 'Ubrania', 'cena' => 50],
['nazwa' => 'Produkt C', 'kategoria' => 'Elektronika', 'cena' => 150],
['nazwa' => 'Produkt D', 'kategoria' => 'Ubrania', 'cena' => 75]
];
function porownajKategorie($a, $b) {
return strcmp($a['kategoria'], $b['kategoria']);
}
Funkcja `strcmp` porównuje dwa stringi. Zwraca 0, jeśli są identyczne, wartość ujemną, jeśli pierwszy jest mniejszy leksykograficznie i wartość dodatnią w przeciwnym wypadku.
usort($produkty, 'porownajKategorie');
Funkcja `usort` sortuje tablicę *in-place*, czyli modyfikuje oryginalną tablicę.
print_r($produkty);
Ten przykład pokazuje podstawowe zastosowanie funkcji callback w sortowaniu tablic w PHP. Zachęcamy do eksperymentowania z różnymi funkcjami callback, aby sortować tablice według innych kryteriów (np. ceny).