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 を返して)、配列を保存します)。

編集:

他の人に応じて、簡単に言えば、配列が渡されたかどうかにかかわらず、true または false を返すには、単に使用します

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