Sortowanie tablic z użyciem generatorów

Założenie: Nauczyć się sortować duże tablice w PHP z wykorzystaniem generatorów, aby uniknąć problemów z pamięcią.

Krok po kroku:

  1. Tworzenie generatora: Generator pozwala na iterację po danych “na żądanie”, bez ładowania całej tablicy do pamięci. Użyjemy funkcji `yield`.
  2. 
    function sortujGenerator($tablica) {
      sort($tablica); // Sortujemy tablicę w miejscu
      foreach ($tablica as $wartosc) {
        yield $wartosc;
      }
    }
    				
  3. Tworzenie dużej tablicy: Stwórzmy przykładową dużą tablicę liczb.
  4. 
    $duzaTablica = range(1, 1000000); // Tablica z milionem liczb
    shuffle($duzaTablica); // Tasujemy tablicę
    				
  5. Iteracja po posortowanej tablicy za pomocą generatora: Iterujemy po generatorze, przetwarzając dane po kawałku.
  6. 
    foreach (sortujGenerator($duzaTablica) as $wartosc) {
      // Przetwarzanie posortowanej wartości (np. wyświetlanie)
      // echo $wartosc . "\n"; // Odkomentuj, aby wyświetlić posortowane wartości
    }
    				
  7. Alternatywne podejście z `yield from` (PHP 7.0+): Możemy uprościć kod używając `yield from`.
  8. 
    function sortujGenerator2($tablica) {
      sort($tablica);
      yield from $tablica;
    }
    				

Powyższy przykład pokazuje, jak używać generatorów do efektywnego sortowania dużych tablic w PHP. Unikamy ładowania całej tablicy do pamięci, co jest szczególnie ważne przy pracy z ogromnymi zbiorami danych.

Dodaj komentarz 0

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