iterator_to_array
funkcja
Konwertuje obiekt Traversable (np. Generator, ArrayIterator, SplStack) na zwykłą tablicę PHP. Opcjonalnie zachowuje oryginalne klucze iteratora.
iterator_to_array(Traversable|array $iterator, bool $preserve_keys = true): array
iterator_to_array przechodzi przez cały iterator i zbiera jego elementy do zwykłej tablicy. Domyślnie ($preserve_keys = true) używa kluczy zwracanych przez iterator; jeśli kilka elementów ma ten sam klucz, ostatni nadpisuje poprzednie. Przekazanie false indeksuje wynik od zera.
Najczęściej używasz tej funkcji z generatorami — zamieniasz leniwie obliczaną sekwencję na tablicę w pamięci, gdy potrzebujesz np. policzyć elementy lub przekazać wynik do funkcji oczekującej tablicy. Pamiętaj, że po tym wywołaniu generator jest wyczerpany i nie można go ponownie użyć.
<?php
declare(strict_types=1);
$iterator = new ArrayIterator(['a' => 1, 'b' => 2, 'c' => 3]);
$tablica = iterator_to_array($iterator);
print_r($tablica);
// wynik:
// Array
// (
// [a] => 1
// [b] => 2
// [c] => 3
// )