This blog post has been published on 2020-07-29 and may be out of date.
The next examples are using the php array manipulation library “Arrayy” which is using generators internally for many operations.
⇾ https://github.com/voku/ArrayyStringCollection::create(['Array', 'Array'])->unique()->append('y')->implode(); // Arrayy
map: transform all values in the collection
StringCollection::create(['foo', 'Foo'])->map('mb_strtoupper');
// StringCollection['FOO', 'FOO']
filter: pass all values to the truth test
$closure = function ($value) {
return $value % 2 !== 0;
}
IntCollection::create([1, 2, 3, 4])->filter($closure);
// IntCollection[0 => 1, 2 => 3]
reduce: transform all values into a new result
IntCollection::create([1, 2, 3, 4])->reduce(
function ($carry, $item) {
return $carry * $item;
},
1
);
// IntCollection[24]