前回までは、$_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が順番に改行されて出力されましたね。
まとめ
今回までで、定義済み変数の説明はおしまいです。
次回は定数について説明します。

