LoginSignup
21

More than 5 years have passed since last update.

posted at

updated at

filter_inputで配列を取得する方法

POSTメソッドで、下記のクエリを投げた時にPHPで$_POST["hobby] で受け取れますが、
filter_input関数を使って受け取ろうとしたらつまってしまったので、解決した方法を記入したいと思います。

 <input name="[]" type="checkbox" value="checkboxA"> 野球
 <input name="[]" type="checkbox" value="checkboxB"> サッカー

最初は、このように書いていたのですがデフォルトでは配列の取得はできません。

$hobby = filter_input(INPUT_POST, 'hobby');

なので、第四引数に FILTER_REQUIRE_ARRAY を指定すると、取得できるようになります。

$hobby = filter_input(INPUT_POST, 'hobby', FILTER_DEFAULT, [
    'flags' => FILTER_REQUIRE_ARRAY
]);

これを省略して書きた場合かつFILTER_REQUIRE_ARRAY以外の細かい設定をする必要がなければ

$hobby = filter_input(INPUT_POST, 'hobby', FILTER_DEFAULT,FILTER_REQUIRE_ARRAY);

もしくは

$post = filter_input_array(INPUT_POST, [
    'hobby' => [
        'flags' => FILTER_REQUIRE_ARRAY
    ]
]);

このように書けば解決できました。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
21