Wyszukiwanie wartości w tablicy z użyciem generatorów (wyszukiwanie leniwe)

Założenie: Nauczyć się, jak efektywnie wyszukiwać wartości w dużych tablicach w PHP za pomocą generatorów, unikając ładowania całej tablicy do pamięci.

Krok po kroku:

  1. Stworzenie funkcji generatora: Funkcja ta będzie iterować po tablicy i zwracać wartości pojedynczo, tylko wtedy gdy są potrzebne.
  2. 
    function searchArrayGenerator(array $array, $value): Generator {
        foreach ($array as $key => $item) {
            if ($item === $value) {
                yield $key => $item;
                break; // Znajdujemy tylko pierwsze wystąpienie
            }
        }
    }
    				

    Funkcja searchArrayGenerator używa słowa kluczowego yield, co oznacza, że jest to generator. Iteruje po tablicy i zwraca tylko klucz i wartość, gdy znajdzie szukaną wartość. break; zatrzymuje iterację po znalezieniu pierwszego dopasowania.

  3. Utworzenie przykładowej tablicy: Utworzymy dużą tablicę liczb.
  4. 
    $largeArray = range(1, 1000000);
    				

    Tworzymy tablicę zawierającą liczby od 1 do 1000000.

  5. Wyszukiwanie wartości: Użyjemy generatora do znalezienia wartości w tablicy.
  6. 
    $searchValue = 500000;
    $result = searchArrayGenerator($largeArray, $searchValue);
    
    foreach ($result as $key => $value) {
        echo "Znaleziono wartość $value o kluczu $key\n";
    }
    				

    Pętla foreach iteruje po wynikach generatora. Generator zwróci tylko jedno dopasowanie (pierwsze wystąpienie).

Ten przykład pokazuje, jak generator może znacznie poprawić wydajność wyszukiwania w dużych tablicach, ponieważ nie ładuje całej tablicy do pamięci. Zachęcamy do eksperymentowania z różnymi rozmiarami tablic i wartościami, aby zobaczyć różnicę w wydajności.

Dodaj komentarz 0

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