mirror of
https://github.com/silverstripe/silverstripe-framework
synced 2024-09-19 16:06:32 +02:00
NEW: Iterate ArrayList via a generator
Using a generator here means that we don’t need to prepare a duplicate array in-memory before iterating.
This commit is contained in:
parent
2ead3746d6
commit
6c136c9cf2
@ -109,13 +109,13 @@ class ArrayList extends ViewableData implements SS_List, Filterable, Sortable, L
|
|||||||
#[\ReturnTypeWillChange]
|
#[\ReturnTypeWillChange]
|
||||||
public function getIterator()
|
public function getIterator()
|
||||||
{
|
{
|
||||||
$items = array_map(
|
foreach ($this->items as $i => $item) {
|
||||||
function ($item) {
|
if (is_array($item)) {
|
||||||
return is_array($item) ? new ArrayData($item) : $item;
|
yield new ArrayData($item);
|
||||||
},
|
} else {
|
||||||
$this->items ?? []
|
yield $item;
|
||||||
);
|
}
|
||||||
return new ArrayIterator($items);
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
Reference in New Issue
Block a user