2

如果验证数组中的任何元素失败,如何使 filter_var 返回 false?

$ids = array(6,3,5,8);

$result = filter_var($ids, FILTER_VALIDATE_INT, array(
    'options' => array('min_range' => 4),
    'flags' => FILTER_REQUIRE_ARRAY
    )
);

var_dump($result);
/* returns
array(4) { [0]=> int(6) [1]=> bool(false) [2]=> int(5) [3]=> int(8) } 
*/
4

2 回答 2

1

不幸的是,当涉及数组时filter_var()无法返回;false您必须添加另一个条件:

if (in_array(false, $result, true)) {
    // one or more entries failed the filter
}

确保有true作为最后一个参数in_array(),否则0也会被考虑false

于 2013-05-16T08:59:24.920 回答
0

使用三元运算符:

$result = in_array(false, $result) ? false : true;

如果 boolean false 在您的数组中(通过检查 in_array() 函数,将 boolean false 分配给 $result,否则分配 true(或返回 $result)以保存数组。

编辑:

回应别人,简而言之,返回真假,数组是否通过,只需使用

$result = in_array(false, $result);
于 2013-05-16T08:28:17.773 回答