PHP函数验证数组

bgc*_*ode 3 php validation boolean-logic

是否有一个函数,我可以给一个数组,如果提供的函数为所有函数返回true,它将返回true?

theFunction(array(1,2,3) , 'is_numeric') //true
theFunction(array(1,"b",3) , 'is_numeric') //false
Run Code Online (Sandbox Code Playgroud)

Art*_*cto 5

不,但你可以使用array_reduce:

array_reduce(array(1,2,3),
    function ($a, $v) { return $a && is_numeric($v); }, true);
Run Code Online (Sandbox Code Playgroud)

您当然可以构建自己的高阶函数:

function for_all(array $arr, $func) {
    return array_reduce($arr,
        function ($a, $v) use ($func) {
            return $a && call_user_func($func, $v);
        }, true);
}

var_dump(
    for_all(array(1,2,3), 'is_numeric')
); //true
Run Code Online (Sandbox Code Playgroud)