Wyszukiwanie wartości za pomocą generatorów
Założenie: Przeszukać dużą tablicę danych w celu znalezienia konkretnej wartości, wykorzystując generator, aby uniknąć obciążenia pamięci.
Krok po kroku:
- Przygotowanie danych: Załóżmy, że mamy bardzo dużą tablicę liczb:
- Funkcja generatora: Stwórzmy funkcję, która będzie generować kolejne elementy tablicy:
- Wyszukiwanie wartości: Teraz możemy użyć generatora do wyszukiwania konkretnej wartości (np. 500000):
$duzaTablica = range(1, 1000000); // Tablica z milionem liczb
function generatorLiczb(array $tablica): Generator {
foreach ($tablica as $liczba) {
yield $liczba;
}
}
Funkcja generatorLiczb
używa słowa kluczowego yield
, aby zwrócić kolejne wartości z tablicy bez ładowania całej tablicy do pamięci jednocześnie.
$generator = generatorLiczb($duzaTablica);
$znaleziono = false;
foreach ($generator as $liczba) {
if ($liczba === 500000) {
echo "Znaleziono liczbę 500000!";
$znaleziono = true;
break; // Zakończ pętlę po znalezieniu wartości
}
}
if (!$znaleziono) {
echo "Liczba 500000 nie została znaleziona.";
}
Pętla foreach
iteruje po generatorze, sprawdzając każdą liczbę. break
zatrzymuje pętlę po znalezieniu wartości, zwiększając wydajność.
Ten przykład pokazuje, jak używać generatorów w PHP do efektywnego przetwarzania dużych zbiorów danych. Zachęcamy do eksperymentowania z różnymi rodzajami danych i metodami wyszukiwania!