PHPのforeach文について解説します。
- PHPのforeach文の書き方が知りたい。
- foreach文で配列のindexやkeyの取得方法は?
- foreach文はどんな時に使う?
このような内容について解説します。
私はWEB開発中心に、フロントエンド、サーバーサイド、サーバー構築など経験豊富なエンジニアです。
これからプログラミングを始める方に向けて、少しでも分かりやすく解説していきたいと思います。
foreach文はデータベースから取得した連想配列でよく使います。
Web開発において、データベースはほぼ必須なのでこれを機に身につけましょう!
まずはforeach文の処理イメージだけでも覚えていただければと思います。
それでは行きましょう!
目次
foreach文の書き方
基本的な書き方
foreach文の書き方を、処理イメージと表で表してみました。
処理イメージ:

名称 | 使い方 | 意味 |
---|---|---|
配列 | $arr | 変数の配列を指定する |
配列の値 | $value | foreach文の中で使用する変数を記述する ループする度に配列の値がセットされる |
次にソースコードで書いてみます。
$arr から取得した値を1つずつ$value にセットして、echoで出力しています。
<?php $arr = ['バナナ', 'イチゴ', 'すいか']; foreach ($arr as $value) { echo $value . '<br>'; } ?>
実行結果:

配列の値がすべて表示できました。
連想配列のキーも一緒に取得する場合
先ほどの「基本的な書き方」だけではキーが取得できないため、
キーも取得したい場合は、foreach文に「配列のキー =>」を付け足します。
処理イメージは次のようになります。
処理イメージ:

次にソースコードに書いてみます。
$key、$valueを抜き出して、「キー:値」で表示しています。
<?php $arr = ['バナナ', 'イチゴ', 'すいか']; // 「$key =>」を加えることでキーを取得できる foreach ($arr as $key => $value) { echo $key . ':' . $value . '<br>'; } ?>
実行結果:

配列のキーと値が表示されました。
break(抜け出す)
foreach文を途中で抜け出すには、「break;」を使用します。
先ほどの「連想配列のキーも一緒に取得する場合」を表示するソースコードで、if文で「1」になったら抜け出すように変更してみます。
<?php $arr = ['バナナ', 'イチゴ', 'すいか']; foreach ($arr as $key => $value) { // キーが「1」の時にループを抜け出す if ($key == 1) { break; } echo $key . ':' . $value . '<br>'; } ?>
実行結果:

「1」でループを抜け出しましたので、「0」だけが表示されました。
continue(スキップ)
foreach文の途中でスキップするときは、continueを使用します。
if文で「1」のときだけスキップしてみます。
<?php $arr = ['バナナ', 'イチゴ', 'すいか']; foreach ($arr as $key => $value) { // キーが「1」の時はスキップする if ($key == 1) { continue; } echo $key . ':' . $value . '<br>'; } ?>
実行結果:

「1」だけスキップされて、「0、2」が表示されました。
foreach文はどんな時に使うのか
foreach文はデータベースから取得した連想配列を扱うのによく使いますので、データベースから取得した配列のイメージから説明します。
データベースから取得した配列のイメージ
今回はPHPからMySQLへの接続方法については説明しませんが、データベースに次のデータが入っているとします。(phpMyAdminで作ってみました)

このデータをPHPのPDOライブラリなどで取得すると、次のような配列が取得できます。
<?php // データベースから取得した配列 $results = [ ['no' => '1', 'name' => 'バナナ', 'color' => '黄色'], ['no' => '2', 'name' => 'イチゴ', 'color' => '赤'], ['no' => '3', 'name' => 'すいか', 'color' => '緑'] ]; ?>
配列のループ
早速、取得したデータをforeach文でループしてみます。
$results から1行ずつ取り出して、$row[‘no’]のように指定して出力しています。
<?php $results = [ ['no' => '1', 'name' => 'バナナ', 'color' => '黄色'], ['no' => '2', 'name' => 'イチゴ', 'color' => '赤'], ['no' => '3', 'name' => 'すいか', 'color' => '緑'] ]; foreach ($results as $row) { echo $row['no'] . '、'; echo $row['name'] . '、'; echo $row['color'] . '<br>'; } ?>
実行結果:

配列の中身を表示できました。
HTMLのTableでよく使う
次に先ほどのforeach文の配列のループを使って、HTMLのTableで表示してみましょう。
<table border="1"> <tr> <th>No</th> <th>名称</th> <th>色</th> </tr> <?php $results = [ ['no' => '1', 'name' => 'バナナ', 'color' => '黄色'], ['no' => '2', 'name' => 'イチゴ', 'color' => '赤'], ['no' => '3', 'name' => 'すいか', 'color' => '緑'] ]; foreach ($results as $row) { echo '<tr>'; echo '<td>' . $row['no'] . '</td>'; echo '<td>' . $row['name'] . '</td>'; echo '<td>' . $row['color'] . '</td>'; echo '</tr>'; } ?> </table>
実行結果:

どうですか?表示できましたか?
このようにデータベースから持ってきた配列をforeach文で表示するのは結構使いますので覚えておきましょう。
まとめ
いかがだったでしょうか。
PHPのforeach文について次の内容で解説しました。
- foreach文の書き方(基本的な書き方、キーも一緒に取得する、breakで抜け出し、continueでスキップ)
- foreach文はどんな時に使うのか(データベースの配列イメージ、配列のループ、HTMLのTable表示)
foreach文は連想配列のために使用するループで、for文と比べて数字などを意識することがないので使いやすい構文です。
特にデータベースから取得したデータはまずforeach文を使用して出力するようにしましょう。
プログラミング学習を挫折せずに続けて成功できる人は
- 「目的目標を明確にすること」
- 「質問・相談できる環境を作ること」
- 「自己解決スキルを身に着けること」
この3つを大切にしてると思います。
ただ漠然とプログラミング学習をしているだけでは
すぐに身に付きませんので、プログラミングスクールがおすすめです。
-
テックキャンプ
本気でIT業界に転職したい方におすすめです。
転職できなかったら全額返金があります。 -
DMM WEBCAMP
国から認定されているスクールです。
やむなく離職中の方など、条件を満たしている方は教育訓練給付金が支給されます。 -
TechAcademy
1週間の無料体験があります。
気軽にスクールを体験したい方向けです。