PHP foreachが初心者でも書ける!超重要なbreakとcontinueの違いも

web開発

2017/04/25

web開発

プログラミング言語PHPのforeach文について、Web開発経験のある筆者がサンプルコードで丁寧に解説します。

プログラミング初心者向けにPHP foreach文について解説しています。

foreach文を使えば、配列(array)の中の要素の分だけ繰り返し処理をすることができます。(後に解説)

本記事を読めば、PHP foreach文の書き方、連想配列でkeyとvalueを取り出す方法、breakとcontinueが理解できるでしょう。

ぜひ最後まで読んで、PHP foreach文の基本を理解してください。

 

PHP foreachの書き方

フォーイーチ(foreach)文では、配列の中にある要素の分だけ、繰り返し処理を行いたいときに使います。

foreach文を使うときに必要なものとしては処理を実施する配列と、配列の中身のデータを一時的に格納する変数が必要になります。

それでは、実際の構文を確認してみましょう。

for文、while文でも同じ処理はもちろん可能ですが、配列の内容を順番に取り出すようなケースであればforeach文を使う方がコードがすこしシンプルになります。

その理由は、わかりますか?

for文、while文ではループを終了させるための条件式が必須です。

foreach文で指定するのは、処理をする配列のみでよいため、条件式について考える必要がありません。

次に実際にforeach文を使って配列からデータを取り出すサンプルコードを見てみましょう。

 

PHP foreachでvalueを取り出そう(配列)

名前の入った配列を定義し、foreach命令で順番に名前を取り出すサンプルコードです。

配列に$arr,仮変数に$dataを指定しています。

foreachで$arr[0],$arr[1],$arr[2]とアクセスされ、その値が都度$dataにいれられて、printで$dataの値が表示されました

この様に条件式などを指定せずとも、配列のデータを順番にとりだすことができす。

それでは、次に連想配列を使ったサンプルコードを実際に見ていきましょう。

 

PHP foreachでkeyとvalueを取り出そう(連想配列)

連想配列の場合は、先程の「仮変数」の代わりに「仮キー変数 => 仮変数値」を指定することで、連想配列のデータから一組のキーと値が取得できるようになります。

連想配列$arrで定義されたキーの値を$keyにセット、対応する英語データを$valにセット。それらを繰り返してデータが順番に取り出されています。

先程の配列の場合は、「仮変数」でした。連想配列の場合は「仮キー変数と仮変数値」です。

受け取るデータが何かを意識すると覚えやすいです。

 

PHP foreachにおけるbreak

前項でforeachの構文を使ってデータに順番に全てアクセスする方法について書きました。

ただし、ループ処理を配列の個数分やっていると数の多い配列の場合には処理に時間がかかることになってしまいます。

また、実際には全ての配列要素にアクセスしないで良いケースもありますよね。

そういったケースでは、条件処理によって「break」を実行することでforeachのループ処理から抜けることができます。

次のサンプルコード3を見てみましょう。

配列に名前とテストの結果の点数が入っています。そして、一人でもテストの点数が40未満の人がいたら処理を中断し、「不合格者がいました」と報告します。

※以下のサンプルコードではif文を使用します。

if文があまり理解できていない人はif文について詳しく解説した記事をご覧ください。

この様に、目的の情報が見つかったら終了したいというケースが多くあるのです。

 

PHP foreachにおけるcontinue

先程は、特定の条件の場合にbreak文でループ処理を中断しましたが、特定の周回のみ処理をスキップしたいという時もあります。そのような場合は、「continue」を使いましょう。

では、実際にサンプルコードを見ながら処理を確認してみましょう。

サンプルコード4では、サンプルコード3から少し変わってテストの不合格者一覧リストを作りたいときを想定しています。

40点以上の合格者を発見した場合は、continueで以降の処理をスキップ(合格者は表示しない)、テストの不合格者の名前と点数を表示しています。

breakではforeachのループ処理ブロックから抜けてしまいしましたが、continue文は、以降の処理をスキップするだけで、foreach文のループ処理は継続的に処理が行われます。

break文とcontinue文の違いについては、きちんと理解しておきましょう。

 

いかがでしたか?PHP foreachが理解できましたか?foreachはPHPの構文の中でもよく使う構文の1つなので、ぜひ理解しておきましょう!

udemyでは、初心者にも学習しやすいPHPの講座を用意しています。

ぜひ受講して、PHPをマスターしてみてはいかがでしょうか?

目的別!最先端ITスキル講座

海外の人気講師によるWeb制作のベストセラ―講座

【世界で30万人が受講】フルスタック・Webエンジニア講座(2017最新版)
【世界で30万人が受講】フルスタック・Webエンジニア講座(2017最新版)

ウェブデザインの基礎、サーバーサイドプログラミング、モバイルアプリ開発、APIプログラミングなどを網羅的にマスターできる

最新!iOS11アプリ開発講座

【6日で速習】iOS 11 Swift 4アプリ開発入門 決定版 20個のアプリを作る ARKit,CoreML,NFC
【6日で速習】iOS 11 Swift 4アプリ開発入門 決定版 20個のアプリを作る ARKit,CoreML,NFC

地図検索、ARなど20個以上のアプリを作って学べる実践講座

日本を代表するデータサイエンティスト辻真吾氏による人気講座

【世界で5万人が受講】実践 Python データサイエンス
【世界で5万人が受講】実践 Python データサイエンス

データ解析の基本、可視化、統計、機械学習などデータサイエンスに関するあらゆる実践的なスキルがPythonで身に付く!

初級者から学べる人工知能講座の決定版

みんなのAI講座 ゼロからPythonで学ぶ人工知能と機械学習
みんなのAI講座 ゼロからPythonで学ぶ人工知能と機械学習

初心者向けの人工知能と機械学習のコース。文字認識や株価分析なども実施

  • シェア
  • ツイート
  • Poket
  • はてなブックマーク
  • フォロー
  • シェア
  • ツイート
  • Poket
  • はてなブックマーク
  • フォロー

関連記事