LoginSignup
22
24

More than 5 years have passed since last update.

filter_inputで配列を取得する方法

Last updated at Posted at 2017-11-30

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
    ]
]);

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

22
24
0

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
  3. You can use dark theme
What you can do with signing up
22
24