PHP | filter_input()で配列型のデータを受け取る方法

PHP,PHP フォーム

PHPのfilter_input()で配列型の送信データを受け取って利用する方法を紹介しています。

確認環境

エックスサーバー
PHP 8.016

filter_input()で配列型のデータを受け取る方法

例えば以下のように配列型のデータをフォームから送信した場合、filter_input()で受け取って利用しようとするとそのままではエラーが発生します。

<form action="" method="post">
	<p><input type="text" name="data[title]"></p>
	<p><input type="text" name="data[name]"></p>
	<p><input type="submit" value="Submit"></p>
</form>
$data = filter_input(INPUT_POST, 'data');
echo $data['title'];

Warning: Trying to access array offset on value of type bool in ~

filter_input()で配列型のデータを受け取るには配列データを許可するオプションパラメータ「FILTER_REQUIRE_ARRAY」を追加します。

第三引数に指定する必要があるため、第二引数には省略を意味する「FILTER_DEFAULT」を指定します。

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

上記のコードで、filter_input()で配列型のデータを受け取り利用する事が可能になります。

PHP,PHP フォーム

Posted by Yousuke.U