Sortowanie tablic wielowymiarowych (array_multisort)

Założenie: Nauczymy się sortować tablice wielowymiarowe w PHP za pomocą funkcji array_multisort(). Jako przykład posłuży nam lista książek, którą posortujemy najpierw po autorze, a następnie po tytule.

Krok po kroku:

  1. Tworzenie tablicy książek: Zdefiniujmy tablicę wielowymiarową przechowującą informacje o książkach. Każdy element tablicy będzie zawierał autora i tytuł książki.
  2. 
    $ksiazki = [
        ['autor' => 'Tolkien', 'tytul' => 'Hobbit'],
        ['autor' => 'Sapkowski', 'tytul' => 'Ostatnie życzenie'],
        ['autor' => 'Tolkien', 'tytul' => 'Władca Pierścieni'],
        ['autor' => 'Sapkowski', 'tytul' => 'Miecz przeznaczenia'],
    ];
    				
  3. Wyodrębnienie kolumn do sortowania: Używając funkcji array_column(), wyodrębnimy kolumny ‘autor’ i ‘tytul’ do osobnych tablic.
  4. 
    $autory = array_column($ksiazki, 'autor');
    $tytuly = array_column($ksiazki, 'tytul');
    				
  5. Sortowanie tablic: Funkcja array_multisort() posortuje tablice `$autory` i `$tytuly` (oraz oryginalną tablicę `$ksiazki`). Parametr `SORT_ASC` oznacza sortowanie rosnąco.
  6. 
    array_multisort($autory, SORT_ASC, $tytuly, SORT_ASC, $ksiazki);
    				
  7. Wyświetlenie posortowanej tablicy: Wyświetlimy posortowaną tablicę `$ksiazki` za pomocą pętli `foreach`.
  8. 
    foreach ($ksiazki as $ksiazka) {
        echo "Autor: " . $ksiazka['autor'] . ", Tytuł: " . $ksiazka['tytul'] . "
    "; }

Ten przykład pokazuje podstawowe zastosowanie funkcji array_multisort() do sortowania tablic wielowymiarowych. Zachęcamy do eksperymentowania z różnymi parametrami sortowania (np. `SORT_DESC` dla sortowania malejącego) oraz sortowania po większej liczbie kolumn.

Dodaj komentarz 0

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