Php/docs/function.filter-var-array

提供:Dev Guides
< Php
移動先:案内検索

filter_var_array

(PHP 5 >= 5.2.0, PHP 7)

filter_var_array複数の変数を受け取り、オプションでそれらをフィルタリングする


説明

filter_var_array ( array $array [, array|int $options = FILTER_DEFAULT [, bool $add_empty = true ]] ) : array|false|null

この関数を使用すると、大量の変数を取得する際に filter_var() を繰り返しコールする必要がなくなるので便利です。


パラメータ

array

文字列キーの配列。フィルタリングするデータを保持します。

options

引数を定義する配列。配列のキーとして使用できるのは 変数名を string で表したものです。 対応する値に使用できるのは、 フィルタの型か配列 (フィルタ・フラグ・オプションを指定したもの) です。 配列の値として配列を使用する場合に使用できるキーは、 filter (フィルタの型)、 flags (フィルタに適用するフラグ) および options (フィルタに適用するオプション) です。理解を深めるために、以下の例を参照ください。

このパラメータには、フィルタ定数 を表す整数値を指定することもできます。 こうすると、入力配列のすべての値がそのフィルタで処理されます。

add_empty

存在しないキーは null として返り値に追加します。


返り値

成功した場合は要求された変数の値を含む配列、 あるいは失敗した場合に false を返します。 配列の値は、フィルタリングに失敗した場合には false、 変数が設定されていない場合は null となります。


例1 filter_var_array() の例

<?phperror_reporting(E_ALL | E_STRICT);$data = array(    'product_id'    => 'libgd<script>',    'component'     => '10',    'versions'      => '2.0.33',    'testscalar'    => array('2', '23', '10', '12'),    'testarray'     => '2',);$args = array(    'product_id'   => FILTER_SANITIZE_ENCODED,    'component'    => array('filter'    => FILTER_VALIDATE_INT,                            'flags'     => FILTER_FORCE_ARRAY,                             'options'   => array('min_range' => 1, 'max_range' => 10)                           ),    'versions'     => FILTER_SANITIZE_ENCODED,    'doesnotexist' => FILTER_VALIDATE_INT,    'testscalar'   => array(                            'filter' => FILTER_VALIDATE_INT,                            'flags'  => FILTER_REQUIRE_SCALAR,                           ),    'testarray'    => array(                            'filter' => FILTER_VALIDATE_INT,                            'flags'  => FILTER_FORCE_ARRAY,                           ));$myinputs = filter_var_array($data, $args);var_dump($myinputs);echo "\n";?>

上の例の出力は以下となります。


array(6) {
  ["product_id"]=>
  string(17) "libgd%3Cscript%3E"
  ["component"]=>
  array(1) {
    [0]=>
    int(10)
  }
  ["versions"]=>
  string(6) "2.0.33"
  ["doesnotexist"]=>
  NULL
  ["testscalar"]=>
  bool(false)
  ["testarray"]=>
  array(1) {
    [0]=>
    int(2)
  }
}

参考

  • filter_input_array() - 外部から変数を受け取り、オプションでそれらをフィルタリングする
  • filter_var() - 指定したフィルタでデータをフィルタリングする
  • filter_input() - 指定した名前の変数を外部から受け取り、オプションでそれをフィルタリングする
  • フィルタの型