Sortowanie tablic z uwzględnieniem specyficznych potrzeb aplikacji
Założenie: Nauczymy się sortować tablicę ogłoszeń, najpierw po dacie publikacji, a następnie (w przypadku tych samych dat) po cenie.
Krok po kroku:
- Przygotowanie danych: Zdefiniujmy tablicę zawierającą ogłoszenia. Każde ogłoszenie będzie tablicą asocjacyjną z kluczami “data” (w formacie YYYY-MM-DD) i “cena”.
- Sortowanie: Użyjemy funkcji `usort` do sortowania tablicy według własnej funkcji porównującej.
- Wyświetlenie wyników: Wyświetlimy posortowaną tablicę.
$ogloszenia = [
['data' => '2024-02-28', 'cena' => 100],
['data' => '2024-02-29', 'cena' => 50],
['data' => '2024-02-28', 'cena' => 150],
['data' => '2024-03-01', 'cena' => 75],
['data' => '2024-02-29', 'cena' => 120]
];
usort($ogloszenia, function($a, $b) {
$porownanieDat = strcmp($a['data'], $b['data']);
if ($porownanieDat !== 0) {
return $porownanieDat; // Sortuj po dacie
} else {
return $a['cena'] - $b['cena']; // Sortuj po cenie, jeśli daty są takie same
}
});
print_r($ogloszenia);
Powyższy kod najpierw porównuje daty ogłoszeń. Jeśli daty są różne, zwraca wynik porównania (sortuje rosnąco). Jeśli daty są takie same, porównuje ceny i sortuje je rosnąco.
Ten przykład pokazuje, jak elastycznie sortować tablice w PHP, dostosowując funkcję porównania do specyficznych potrzeb aplikacji.