MBrendecke icon

PHP Lambda Search

MBrendecke | PRO | 05/24/20 09:53:34 PM UTC | 0 ⭐ | 1617 👁️ | Never ⏰ | []
PHP |

770 B

|

None

|

0 👍

/

0 👎

<?php
 
$fizz = function (int $value): bool {
    return $value % 3 == 0;
};
$buzz = function (int $value): bool {
    return $value % 5 == 0;
};
 
$filters = [$fizz, $buzz];
 
$numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30];
 
/**
 * @param int[] $numbers
 * @param callable[] $filters
 * @return int[]
 */
function findAll(array $numbers, array $filters)
{
    $retVal = $numbers;
    foreach ($filters as $filter) {
        $temp = [];
        foreach ($retVal as $number) {
            if ($filter($number)) {
                $temp[] = $number;
            }
        }
        $retVal = $temp;
    }
    return $retVal;
}
 
$nums = findAll($numbers, $filters);
print_r($nums);

Comments