よく、ホームページなどで商品の申し込みしたあと、興味のあるジャンルや、この商品のをどこでお知りになりましたかなど、商品に関連したアンケートへの回答をお願いされたことはないでしょうか。
これらのアンケートに対する回答は、「ひとつだけでなく、複数選択(いくつでもよい)可能です。」となっているケースがよく見られますよね。
このアンケートのように、閲覧者が選択したものがなにかを一覧表示させるのに、foreach文を使用すると便利です。
アンケートでチェックされた回答結果を出力するサンプルプログラムを通じて、foreach文の使用方法について紹介したいと思います。
foreach文とは
foreach文は、for文やwhile文のように繰り返し処理のひとつなのですが、配列を引数として持ち、配列に格納された要素分の反復処理をおこなってくれる便利な機能です
説明
わかりやすい例として、配列に格納された家電商品名をforeach文を使用して、表示させてみましょう。
配列arrayには、次のように5つの家電商品名が格納します。
$array=[ ‘ テレビ ‘ , ‘ 洗濯機 ‘ , ‘ 掃除機 ‘ , ‘ アイロン ‘ , ‘ 冷蔵庫 ‘ ]
配列に格納されているひとつひとつの商品を取り出すための変数を$itemとします。
foreach文を使用して、格納された商品名を表示するためには、次のように記述します。
foreach($array as $item ) { echo '<p>' , $item , '<p>' ; ← 商品名を表示させる処理 }
上記の処理では、配列に格納された要素分、繰り返し、商品名を表示させる処理が行われます。
書式
foreach ( 配列変数 as 要素変数 ) { 配列の要素ごとに実施する処理 ; }
サンプルプログラムによる使用例
それでは、実際に、foreach文を使用してみましょう。
家電商品名を表示するサンプルプログラム
<?php $array=['テレビ','洗濯機','掃除機','アイロン','冷蔵庫']; foreach ($array as $item) { echo '<p>',$item,'<p>'; } ?>
実行結果
洗濯機
掃除機
アイロン
冷蔵庫
アンケートの質問にチェックボックスで回答するサンプルプログラム
<p>この商品をどこでお知りになりましたか。複数回答(チェック)可。</p> <form action="foreach-output.php" method="post"> <?php $quest=['インターネット広告', 'ちらし広告', 'テレビ', '電車内広告', '弊社ホームページ', '口コミ']; foreach ($quest as $item) { echo '<p>'; echo '<input type="checkbox" name="quest[]" value="', $item, '">'; echo $item; echo '</p>'; } ?> <p><input type="submit" value="確定"></p> </form>
チェックした回答結果を表示するサンプルプログラム(foreach-output.php)
<?php foreach ($_REQUEST['quest'] as $item) { echo '<p>', $item, '</p>'; } echo 'が選択された内容です。'; ?>
チェック後の実行結果
ちらし広告
電車内広告
が選択された内容です。
まとめ
アンケートなどの質問に複数回答(選択)した場合に、foreach文を使用すると、容易に
選択結果が表示できることがわかりますよね。
foreach文では、他のループ分とは違って配列を引数として扱い、シンプルな記述で配列処理ができるので、とても便利と思います。
他にもいろいろと活用できると思いますので、ぜひ、利用してみてください。
【おすすめ記事】
➡【初心者歓迎】PHP学習で人気のプログラミングスクール
➡バックエンドエンジニアおすすめ!PHPの学習サイト9つ
➡PHPの本・参考書の評判