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
// )