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:
- 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.
- Wyodrębnienie kolumn do sortowania: Używając funkcji
array_column()
, wyodrębnimy kolumny ‘autor’ i ‘tytul’ do osobnych tablic. - Sortowanie tablic: Funkcja
array_multisort()
posortuje tablice `$autory` i `$tytuly` (oraz oryginalną tablicę `$ksiazki`). Parametr `SORT_ASC` oznacza sortowanie rosnąco. - Wyświetlenie posortowanej tablicy: Wyświetlimy posortowaną tablicę `$ksiazki` za pomocą pętli `foreach`.
$ksiazki = [
['autor' => 'Tolkien', 'tytul' => 'Hobbit'],
['autor' => 'Sapkowski', 'tytul' => 'Ostatnie życzenie'],
['autor' => 'Tolkien', 'tytul' => 'Władca Pierścieni'],
['autor' => 'Sapkowski', 'tytul' => 'Miecz przeznaczenia'],
];
$autory = array_column($ksiazki, 'autor');
$tytuly = array_column($ksiazki, 'tytul');
array_multisort($autory, SORT_ASC, $tytuly, SORT_ASC, $ksiazki);
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.