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:

  1. Przygotowanie danych: Zdefiniujmy tablicę asocjacyjną reprezentującą listę produktów:
  2. 
    $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]
    ];
    				
  3. Funkcja callback do sortowania po kategorii: Stwórzmy funkcję, która porównuje dwa elementy tablicy na podstawie kategorii:
  4. 
    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.

  5. Sortowanie tablicy: Użyjmy funkcji `usort` do posortowania tablicy `$produkty` za pomocą naszej funkcji callback `porownajKategorie`:
  6. 
    usort($produkty, 'porownajKategorie');
    				

    Funkcja `usort` sortuje tablicę *in-place*, czyli modyfikuje oryginalną tablicę.

  7. Wyświetlenie posortowanej tablicy: Wyświetlmy posortowaną tablicę:
  8. 
    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).

Dodaj komentarz 0

Your email address will not be published. Required fields are marked *