DEV Community

Lars Moelleken
Lars Moelleken

Posted on

Arrayy: A Quick Overview of map(), filter(), and reduce()

first published here: https://suckup.de/2020/07/arrayy-a-quick-overview-of-map-filter-and-reduce/

Arrayy: A PHP array manipulation library. Compatible with PHP 7+

The next examples are using the php array manipulation library “Arrayy” which is using generators internally for many operations.

https://github.com/voku/Arrayy

StringCollection::create(['Array', 'Array'])->unique()->append('y')->implode(); // Arrayy
Enter fullscreen mode Exit fullscreen mode

map: transform all values in the collection

StringCollection::create(['foo', 'Foo'])->map('mb_strtoupper'); 

// StringCollection['FOO', 'FOO']
Enter fullscreen mode Exit fullscreen mode

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]
Enter fullscreen mode Exit fullscreen mode

reduce: transform all values into a new result

IntCollection::create([1, 2, 3, 4])->reduce(
    function ($carry, $item) {
        return $carry * $item;
    },
    1
); 

// IntCollection[24]
Enter fullscreen mode Exit fullscreen mode

Top comments (0)