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