PHP
 Computer >> コンピューター >  >> プログラミング >> PHP

PHPのfilter_var_array()関数とは?複数変数を一括フィルタリングする方法

PHPのfilter_var_array()関数は、複数の変数に対してフィルタリング処理をまとめて適用するための関数です。個別に filter_var() を呼び出す必要がなく、配列に格納された複数のデータ(フォーム入力など)を一括で検証・サニタイズできるため、実務で非常に便利です。

構文

filter_var_array(arrayname, parameters)

パラメータ

  • arrayname − フィルタリング対象となるデータを格納した配列を指定します。

  • parameters − 各キーに適用するフィルタの種類やオプションを定義した配列を指定します。

戻り値

filter_var_array()関数は、処理が成功した場合に要求された変数の値を含む配列を返します。失敗した場合は false を返します。

使用例

以下の例では、学生の名前・点数・メールアドレスを含む配列に対して、それぞれ異なるフィルタを適用しています。

<?php
   $arr = Array (
      "stname" => "Jack",
      "stmarks" => "95",
      "stemail" => "jack@abcde.com",
   ); 
   $filters = array (
      "stname" => array (
         "filter"=>FILTER_CALLBACK,
         "flags"=>FILTER_FORCE_ARRAY,
         "options"=>"ucwords"
      ),
      "stmarks" => array (
         "filter"=>FILTER_VALIDATE_INT,
         "options"=>array (
            "min_range"=>1,
            "max_range"=>100
         )
      ),
      "stemail"=> FILTER_VALIDATE_EMAIL,
   );
   print_r(filter_var_array($arr, $filters));
?>

このコードでは、次のようなフィルタを使用しています。

  • FILTER_CALLBACK − ユーザー定義の関数(ここでは ucwords)を呼び出して値を加工します。

  • FILTER_VALIDATE_INT − 値が整数として有効かどうかを検証します。min_range と max_range で許容範囲(1〜100)を指定できます。

  • FILTER_VALIDATE_EMAIL − 値が有効なメールアドレス形式かどうかを検証します。

実行結果は以下の通りです。

Array
(
   [stname] => Jack
   [stmarks] => 95
   [stemail] => jack@abcde.com
)

すべての値が各フィルタの条件を満たしているため、検証済みの値がそのまま配列として返されています。もし検証に失敗した場合は、該当する要素に false が代入されるため、入力チェックの結果を簡単に判定できます。

  1. 【PHP】array_rand()関数の使い方|配列からランダムなキーを取得する方法

    array_rand() 関数は、配列から1つ以上のランダムなキーを取得するためのPHP組み込み関数です。配列の中から要素を無作為に選びたい場合に便利で、くじ引きやシャッフル表示などの実装によく使われます。 基本構文 array_rand(array $array, int $num = 1) パラメータ arr(第1引数):対象となる配列を指定します。 count(第2引数):取得したいランダムキーの数を指定します。省略した場合はデフォルト値の 1 が適用されます。 戻り値 array_rand() 関数は、選択されたランダムなキーを返します。 第2引数が 1 の場合(または省略した場

  2. PHPのarray()関数とは?配列の作成方法をわかりやすく解説

    PHPのarray()関数は、配列を作成するための関数です。PHPにおける配列には、主に以下の3種類が存在します。インデックス配列 − 数値インデックス(0から始まる番号)で要素を管理する配列連想配列 − 文字列などの名前付きキーで要素を管理する配列多次元配列 − 配列の中に1つ以上の配列を含む、入れ子構造の配列構文// 数値インデックスを持つ配列(インデックス配列) array(value1, value2, ...); // 名前付きキーを持つ配列(連想配列) array(key1 => value1, key2 => value2, ...)パラメータvalue − 配列に