Sortowanie tablic asocjacyjnych z użyciem funkcji porównującej (uasort)
Założenie: Nauczymy się sortować tablice asocjacyjne w PHP za pomocą funkcji uasort
, używając niestandardowej funkcji porównującej, która pozwoli nam na sortowanie według określonych kryteriów, zachowując jednocześnie klucze tablicy.
Krok po kroku:
- Przygotowanie tablicy asocjacyjnej: Zdefiniujmy tablicę asocjacyjną reprezentującą listę zadań z priorytetami:
- Definicja funkcji porównującej: Stwórzmy funkcję, która będzie porównywała wartości (priorytety) zadań. Funkcja ta przyjmuje dwa argumenty – wartości do porównania i zwraca:
-1
, jeśli pierwszy element powinien być przed drugim,0
, jeśli elementy są równe,1
, jeśli pierwszy element powinien być po drugim.- Sortowanie tablicy: Użyjmy funkcji
uasort
, aby posortować tablicę$zadania
za pomocą zdefiniowanej funkcjiporownajPriorytety
: - Wyświetlenie posortowanej tablicy: Wyświetlmy posortowaną tablicę, aby zobaczyć efekt:
$zadania = [
"Zadanie A" => 2,
"Zadanie B" => 1,
"Zadanie C" => 3,
"Zadanie D" => 1
];
function porownajPriorytety($a, $b) {
return $a - $b; // Sortuje od najmniejszego do największego priorytetu
}
uasort($zadania, "porownajPriorytety");
print_r($zadania);
Powyższy kod posortuje tablicę zadań według priorytetu, od najniższego do najwyższego. Klucze tablicy (nazwy zadań) pozostaną zachowane.
Ten przykład pokazuje podstawowe zastosowanie funkcji uasort
do sortowania tablic asocjacyjnych w PHP. Zachęcamy do eksperymentowania z różnymi funkcjami porównującymi, aby osiągnąć pożądany efekt sortowania.