Developer

【PHP基礎】定義済み変数④	配列の送信
2020.12.25
Lv1

【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が順番に改行されて出力されましたね。


まとめ

今回までで、定義済み変数の説明はおしまいです。
次回は定数について説明します。

PHP基礎 連載目次リンク

PHP基礎 連載目次