Sortowanie tablic z uwzględnieniem specyficznych potrzeb aplikacji – sortowanie hybrydowe
Założenie: Stworzymy funkcję sortującą tablicę ogłoszeń, uwzględniającą datę publikacji, cenę, lokalizację i kategorię.
Krok po kroku:
- Przygotowanie danych: Definiujemy tablicę z przykładowymi ogłoszeniami.
- Funkcja sortująca: Tworzymy funkcję `sortujOgloszenia`, która przyjmuje tablicę ogłoszeń i kryterium sortowania.
- Sortowanie wg daty: Używamy funkcji `sortujOgloszenia` do posortowania tablicy wg daty publikacji.
- Sortowanie wg ceny: Analogicznie sortujemy wg ceny.
- Dodatkowe kryteria: Można rozszerzyć funkcję o bardziej złożone kryteria sortowania, np. uwzględniając wagę poszczególnych kryteriów.
$ogloszenia = [
['tytul' => 'Mieszkanie', 'data' => '2024-02-28', 'cena' => 500000, 'lokalizacja' => 'Warszawa', 'kategoria' => 'nieruchomosci'],
['tytul' => 'Samochód', 'data' => '2024-02-27', 'cena' => 30000, 'lokalizacja' => 'Kraków', 'kategoria' => 'motoryzacja'],
['tytul' => 'Dom', 'data' => '2024-02-29', 'cena' => 800000, 'lokalizacja' => 'Warszawa', 'kategoria' => 'nieruchomosci'],
['tytul' => 'Motocykl', 'data' => '2024-02-26', 'cena' => 15000, 'lokalizacja' => 'Wrocław', 'kategoria' => 'motoryzacja']
];
function sortujOgloszenia($ogloszenia, $kryterium) {
usort($ogloszenia, function ($a, $b) use ($kryterium) {
if ($a[$kryterium] == $b[$kryterium]) return 0;
return ($a[$kryterium] < $b[$kryterium]) ? -1 : 1;
});
return $ogloszenia;
}
$ogloszeniaPosortowaneWgDaty = sortujOgloszenia($ogloszenia, 'data');
print_r($ogloszeniaPosortowaneWgDaty);
$ogloszeniaPosortowaneWgCeny = sortujOgloszenia($ogloszenia, 'cena');
print_r($ogloszeniaPosortowaneWgCeny);
Ten przykład pokazuje podstawy sortowania tablic w PHP. Zachęcamy do eksperymentowania z różnymi kryteriami sortowania i rozwijania funkcji `sortujOgloszenia` o bardziej zaawansowane funkcjonalności.