Sortowanie tablic z uwzględnieniem specyficznych potrzeb aplikacji – sortowanie niestandardowe
Sortowanie tablic z uwzględnieniem specyficznych potrzeb aplikacji – sortowanie niestandardowe
Założenie: Stworzymy funkcję sortującą tablicę produktów według ich popularności, uwzględniając liczbę wyświetleń, ocen i komentarzy.
Krok po kroku:
- Definicja tablicy produktów: Zdefiniujmy tablicę asocjacyjną, gdzie każdy element reprezentuje produkt z jego atrybutami.
- Funkcja porównująca: Stwórzmy funkcję, która będzie porównywała dwa produkty na podstawie ich popularności. Użyjemy funkcji `usort` do sortowania tablicy.
- Sortowanie tablicy: Użyjmy funkcji `usort` z naszą funkcją porównującą.
- Wyświetlenie posortowanej tablicy: Wyświetlimy posortowaną tablicę, aby zobaczyć efekt.
$produkty = [
['nazwa' => 'Produkt A', 'wyswietlenia' => 100, 'oceny' => 4.5, 'komentarze' => 20],
['nazwa' => 'Produkt B', 'wyswietlenia' => 50, 'oceny' => 3.0, 'komentarze' => 5],
['nazwa' => 'Produkt C', 'wyswietlenia' => 150, 'oceny' => 4.0, 'komentarze' => 10],
['nazwa' => 'Produkt D', 'wyswietlenia' => 75, 'oceny' => 5.0, 'komentarze' => 15]
];
function porownajProdukty($a, $b) {
$popularnosc_a = $a['wyswietlenia'] + ($a['oceny'] * 10) + ($a['komentarze'] * 5);
$popularnosc_b = $b['wyswietlenia'] + ($b['oceny'] * 10) + ($b['komentarze'] * 5);
return $popularnosc_b - $popularnosc_a; // Sortowanie malejąco
}
usort($produkty, 'porownajProdukty');
print_r($produkty);
Ten przykład pokazuje, jak sortować tablice w PHP w bardziej zaawansowany sposób niż standardowe funkcje sortowania. Możesz modyfikować funkcję `porownajProdukty` aby dostosować kryteria sortowania do swoich potrzeb.