Lazily-evaluated PHP arrays
- php 5.6+
composer require park-brian/functional-array
<?php
use FunctionalArray\FunctionalArray as FnArray;
$sum = FnArray::create(range(1, 10))
->map (function($value) { return $value * 2; })
->filter (function($value) { return $value > 10; })
->reduce (function($acc = 0, $value) { return $acc + $value; });
echo $sum;
$fruitRatings = [
'apples' => 70,
'bananas' => 80,
'cherries' => 90,
'dragonfruit' => 100
];
$favoriteFruits = FnArray::create($fruitRatings)
->filter (function($value) { return $value >= 80; })
->map (function($value, $key) { return "Rating for $key: $value"; })
->reduce (function($acc, $value) { return " $acc \n $value"; })
echo $favoriteFruits;