From 6c136c9cf24223748db122c817b09e6cbd0e9472 Mon Sep 17 00:00:00 2001 From: Sam Minnee Date: Tue, 17 Jan 2017 12:52:14 +1300 Subject: [PATCH] NEW: Iterate ArrayList via a generator MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Using a generator here means that we don’t need to prepare a duplicate array in-memory before iterating. --- src/ORM/ArrayList.php | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/ORM/ArrayList.php b/src/ORM/ArrayList.php index 74a7cd600..eca2da26c 100644 --- a/src/ORM/ArrayList.php +++ b/src/ORM/ArrayList.php @@ -109,13 +109,13 @@ class ArrayList extends ViewableData implements SS_List, Filterable, Sortable, L #[\ReturnTypeWillChange] public function getIterator() { - $items = array_map( - function ($item) { - return is_array($item) ? new ArrayData($item) : $item; - }, - $this->items ?? [] - ); - return new ArrayIterator($items); + foreach ($this->items as $i => $item) { + if (is_array($item)) { + yield new ArrayData($item); + } else { + yield $item; + } + } } /**