【PHP】foreach文を使ってループする方法を解説!

PHPのループはfor文やwhile文のほかに、 foreach文 という処理があります。

foreach文は、配列の中に入っている要素の数分、要素の順に繰り返し処理を行います。
for文と違い、ループする回数を指定しなくてもいいのがメリットです。

この記事では、foreach文を使ってループする方法を初心者でもわかりやすいサンプルコード付きで解説していきます。

foreach文の書き方

foreach文は以下のように書きます。

$配列名は配列であり、すべてのループで、配列の現在の要素の値が$要素に割り当てられます。
内部配列ポインターが1つずつ進められ、最後の配列要素に到達して処理を終了します。

また、連想配列でも使用することができます。
以下のように書きます。

$配列名は配列であり、すべてのループで、現在の要素のキーが$キーに割り当てられます。
内部配列ポインターが1つずつ進められ、最後の配列要素に到達して処理を終了します。

foreach文の使い方

$配列名の中に入っている要素を$elementに代入しています。
そして、$elementに入っている要素を1つずつ取り出します。

foreach文は、for文の配列版みたいなものです。
配列はそれぞれ0からの番号をつけられた箱の中に1つずつ、物や値(要素)を入れてまとめられているようなイメージで、配列の中に入っている要素の数分、繰り返し処理をしてくれます。

配列の要素の数分ループするサンプルコード

配列の要素の数だけループ処理を行ってみましょう。

出力結果



ピンク

オレンジ

配列の要素の数だけループ処理が行われています。

連想配列の要素の数分ループするサンプルコード

先ほどは配列の要素の分だけを処理しましたが、連想配列でも同じことができます。

出力結果

Aから始まる英語はアップルです。
Bから始まる英語はバッグです。
Cから始まる英語はねこです。
Eから始まる英語は目です。
Fから始まる英語は足です。
Gから始まる英語はゴルフです。

このようにキーから連想する要素を取り出すことができます。

breakを使ったサンプルコード

foreach文の中にbreakを使ってみましょう。
break文は繰り返しを中断します。
break文についてはfor文の「2.3 for文を抜けるサンプル」で解説してますので、そちらをご参考ください。

配列の例(break)

出力結果

中井

林村

連想配列の例(break)

出力結果

中井:黒
楠:黄
林村:赤

continue文を使ったサンプルコード

foreach文の中にcontinue文を使ってみましょう。
continueは繰り返しの途中でスキップします。
continue文についてもfor文の「2.2 for文でスキップをするサンプル」で解説してますのでそちらをご参考ください。

配列の例(continue)

出力結果

中井

林村
蚊取

連想配列の例(continue)

出力結果

中井:黒
楠:黄
林村:赤
中垣:青
蚊取:緑

配列の格納数に合わせて繰り返し処理を行う場合

foreach文は配列の格納数に合わせて繰り返し処理を行うこともできます。

こちらは、Sossyの助太刀ブログさんの【PHP】foreach文で配列や連想配列の要素数に合わせて繰り返し処理を行う!の記事を参考にさせていただきました。

出力結果

0: 赤
1: 青
2: ピンク
3: 緑
4: オレンジ

0: 中井
1: 楠
2: 林村
3: 中垣
4: 蚊取

配列の格納数に合わせて繰り返し処理が行われています。

Writer

ST

株式会社flyhawkのSTです。フライテックメディア事業部でのメディア運営・ライター業務なども担当。愛機はMac Book AirとThinkPad。好きな言語:swift、JS系(Node.js等)。好きなサーバー:AWS。受託開発やプログラミングスクールの運営をしております。ご気軽にお問い合わせください。

最新の案件情報