2020.12.25
【PHP基礎】定義済み変数④ 配列の送信
前回までは、$_GETや$_POSTの中に、
文字列のキーと単一のスカラー値を紐づけて格納する方法を学びました。
今回は、文字列のキーの中に配列を格納する方法を学びます。
配列の送信
1つのキーに対応する値として、
スカラー値でなく、
配列を送信する場合があります。
(参考: スカラー値について 配列について)
その場合、フォームのnameの部分に”名前[]”を入れます。
すると、”[]”の部分を除いたものが、
PHP側の$_GETや$_POSTの中身をとりだす、
文字列のキーになります。
サンプルコード
以下のForm_check.htmlでは、apple, banana, orangeの3つの文字列を、
単一の”fruits[]”というname属性でSample38.phpに送信しています。
受取ったSample38.php側では、”fruits[]”から”[]”を取り除いた、
“fruits”をキーにして、
$_GET[“fruits”]という形で、
3つの文字列を含む配列を取得しています。
そして、foreachループで3つの文字列を改行付きで順番に出力しています(参考 foreachループとは)。
<html> <header> <meta charset="UTF-8"> </header> <body> <form method="GET" action="Sample38.php"> りんご:<input type="checkbox" name="fruits[]" value="apple"><br> バナナ:<input type="checkbox" name="fruits[]" value="banana"><br> みかん:<input type="checkbox" name="fruits[]" value="orange"><br> <input type="submit"> </form> </body> </html>
<?php if (isset($_GET["fruits"])) { foreach($_GET["fruits"] as $fruit){ echo $fruit."<br>\n"; } } ?>
実行結果
apple, banana, orangeが順番に改行されて出力されましたね。
まとめ
今回までで、定義済み変数の説明はおしまいです。
次回は定数について説明します。