<?php
function any(array $array, callable $predicate) {
return ((bool) count($array)) && array_reduce($array, function ($bool, $item) use ($predicate) {
return $bool || (bool) $predicate($item);
}, false);
}
function all(array $array, callable $predicate) {
return ((bool) count($array)) && array_reduce($array, function ($bool, $item) use ($predicate) {
return $bool && (bool) $predicate($item);
}, true);
}
$valuesArray = [
[ false, false, false ],
[ false, false, true ],
[ false, true, false ],
[ false, true, true ],
[ true, false, false ],
[ true, false, true ],
[ true, true, false ],
[ true, true, true ],
];
foreach ($valuesArray as $values) {
printf('Any for (%s) is %s' . PHP_EOL, implode(', ', array_map(function ($value) {
return $value ? 'Yeop' : 'Nope';
}, $values)), any($values, function ($value) {
return $value;
}) ? 'Yeop' : 'Nope');
printf('All for (%s) is %s' . PHP_EOL, implode(', ', array_map(function ($value) {
return $value ? 'Yeop' : 'Nope';
}, $values)), all($values, function ($value) {
return $value;
}) ? 'Yeop' : 'Nope');
echo PHP_EOL;
}
preferences:
62.53 ms | 402 KiB | 5 Q