Wyszukiwanie wartości w tablicach asocjacyjnych z użyciem funkcji porównującej (wyszukiwanie niestandardowe)

Założenie: Znaleźć element w tablicy asocjacyjnej o najmniejszej wartości, korzystając z niestandardowej funkcji porównującej, która uwzględnia dodatkowe kryteria.

Krok po kroku:

  1. Definicja tablicy asocjacyjnej: Utworzymy tablicę przechowującą informacje o produktach, z ceną i wagą.
  2. 
    $produkty = [
        ['nazwa' => 'Produkt A', 'cena' => 10, 'waga' => 2],
        ['nazwa' => 'Produkt B', 'cena' => 5, 'waga' => 1],
        ['nazwa' => 'Produkt C', 'cena' => 15, 'waga' => 3],
        ['nazwa' => 'Produkt D', 'cena' => 8, 'waga' => 2.5]
    ];
    				
  3. Funkcja porównująca: Zdefiniujemy funkcję, która porównuje dwa produkty na podstawie ceny i wagi. Produkt z niższą ceną będzie uważany za mniejszy, a w przypadku równej ceny – lżejszy produkt będzie mniejszy.
  4. 
    function porownajProdukty($a, $b) {
        if ($a['cena'] != $b['cena']) {
            return $a['cena'] - $b['cena'];
        } else {
            return $a['waga'] - $b['waga'];
        }
    }
    				
  5. Wyszukiwanie najmniejszego elementu: Użyjemy funkcji `usort` do posortowania tablicy według zdefiniowanej funkcji porównującej, a następnie wybierzemy pierwszy element (najmniejszy).
  6. 
    usort($produkty, 'porownajProdukty');
    $najmniejszyProdukt = $produkty[0];
    echo "Najmniejszy produkt: " . $najmniejszyProdukt['nazwa'] . " (cena: " . $najmniejszyProdukt['cena'] . ", waga: " . $najmniejszyProdukt['waga'] . ")";
    				

Ten przykład pokazuje, jak wykorzystać niestandardową funkcję porównującą do wyszukiwania wartości w tablicy asocjacyjnej w PHP. Zachęcamy do eksperymentowania z różnymi funkcjami porównującymi i badania innych możliwości sortowania tablic.

Dodaj komentarz 0

Your email address will not be published. Required fields are marked *