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:
- Definicja tablicy asocjacyjnej: Utworzymy tablicę przechowującą informacje o produktach, z ceną i wagą.
- 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.
- Wyszukiwanie najmniejszego elementu: Użyjemy funkcji `usort` do posortowania tablicy według zdefiniowanej funkcji porównującej, a następnie wybierzemy pierwszy element (najmniejszy).
$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]
];
function porownajProdukty($a, $b) {
if ($a['cena'] != $b['cena']) {
return $a['cena'] - $b['cena'];
} else {
return $a['waga'] - $b['waga'];
}
}
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.