前回までは、$_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ループとは)。
1 2 3 4 5 6 7 8 9 10 11 12 13 | <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> |
1 2 3 4 5 6 7 | <?php if (isset( $_GET [ "fruits" ])) { foreach ( $_GET [ "fruits" ] as $fruit ){ echo $fruit . "<br>\n" ; } } ?> |
実行結果
apple, banana, orangeが順番に改行されて出力されましたね。
まとめ
今回までで、定義済み変数の説明はおしまいです。
次回は定数について説明します。