・連想配列の場合はどうやって記述するの?
・break構文やcontinue構文って何?
PHPでは、foreach構文を繰り返し処理のために使うことができますが、どうやって実装すればいいかわからない人も多いでしょう。
そこでこの記事では、PHPのforeach asで繰り返し処理をする方法について徹底解説します。
この記事を読めば、PHPでどうやってforeachを使うのか、またbreak構文やcontinue構文の使い方も理解することができるでしょう。
PHPの繰り返し処理につまずいている、foreach構文の使い方がよくわからない人は、ぜひ最後までご覧ください。
目次
foreach構文とは?
foreach構文とは、ループ処理を行うための構文です。
例えば、配列の要素のある分だけ繰り返し処理を行うことができます。
PHPでは繰り返し処理を行う構文として、foreachの他にもforやwhileなどの構文もあります。
これらはすべて繰り返し処理を行う構文ですが、中でもforeachは配列の繰り返し処理を行うことができます。
foreach構文の使い方
foreach構文の使い方は2つあります。
1つは普通の配列である一次元配列と、もう1つは連想配列です。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
<?php // 一次元配列 $array = [1, 2, 3]; foreach ($array as $value) { // 処理 } // 連想配列 $array = [ 'りんご' => 'apple', 'バナナ' => 'banana', 'ぶどう' => 'grape' ]; foreach ($array as $key => $value) { // 処理 } ?> |
一次元配列では、foreachに「$array as $value」とすることで、配列の中の要素を繰り返し処理することができます。
そして、連想配列では、foreachに「$array as $key => $value」とすることで配列の要素を処理します。
ここでの$keyは「りんご、バナナ、ぶどう」にあたり、$valueは「apple、banana、grape」にあたります。
では、ここから実際にコードを使って書き方を学んでいきましょう。
foreachの基本的な使い方
まずは、foreachの基本的な使い方、一次元配列での処理方法について解説していきます。
先ほどの使い方を元に、配列を作って繰り返し処理をしていきましょう。
1 2 3 4 5 6 7 |
<?php $fruits = ['apple', 'banana', 'orange', 'strawberry', 'pineapple']; foreach ($fruits as $value) { echo $value."<br>"; } ?> |
今回は、「$fruits」という配列の中に「apple, banana, orange, strawberry, pineapple」という要素を入れます。
そしてforeach文では、「$fruits as $value」で配列fruitsの中にある値(要素)を1つずつ順番に取り出します。
foreachの処理の部分は、「echo $value」と指定して、取り出した要素を順番に表示します。
※brは表示した要素を改行して、縦に並べるために指定しています。(brを指定しなかった場合は要素が横に並びます)
結果を表示すると、次のようになるでしょう。
配列の中身が順番に表示されていますね。
このように、foreachを使って配列の要素を繰り返し処理することができるのです。
連想配列でのforeachの使い方
次は、連想配列でのforeachの使い方について見ていきましょう。
これもまた、先ほどの書き方を元に、連想配列を作って繰り返し処理をしていきましょう。
1 2 3 4 5 6 7 8 9 10 11 |
<?php $test_score = [ '英語' => 86, '数学' => 90, '国語' => 73 ]; foreach ($test_score as $subject => $score) { echo $subject."の点数は".$score."点です。"."<br>"; } ?> |
今回は、「$test_score」という連想配列を作り、科目と点数を「英語=>86、数学=>90、国語=>73」というように入れていきます。
そして、foreach文では「$test_score as $subject => $score」として、配列の中にある要素を順番に取り出します。
ここでの「$subject」はkeyを表し、「$score」はvalueを表します。
foreachの処理の部分は、「echo $subject.”の点数は”.$score.”点です。”」というように指定して科目の点数を表示できるように設定します。
※文字列を連結する場合は、ドット(.)で繋ぎます。
結果を表示すると次のようになるでしょう。
配列の中身が1つずつ順番に表示されていますね。
このように、foreachは連想配列の繰り返し処理を行うこともできます。
一次元配列と連想配列の両方の処理を使えるように、使い方を覚えておきましょう。
break構文の使い方
foreach構文では、break構文を使うことができます。
break構文とは、繰り返し処理を途中で中断するための構文です。
例えば、条件分岐を用いて「もし〜であれば処理を中断する」というようにすることができます。
実際のコードで書き方を見ていきましょう。
1 2 3 4 5 6 7 8 9 10 11 12 |
<?php $array = [1, 2, 3, 4, 5]; foreach ($array as $value) { echo $value."<br>"; if ($value === 3) { echo "終了"."<br>"; break; } } ?> |
数字の「1, 2, 3, 4, 5」が入った配列「$array」を用意します。
そして、foreachで「$array as $value」とし、配列の中身を順に取得します。
foreachの中の処理は「echo $value」と指定して、配列の要素を表示するように指定しています。
その後に、if文を使って、「もし取り出した要素が3の場合、処理を中止する」という条件分岐を作成しましょう。
if文を「$value === 3」として、処理を「echo “終了”」とした後に、「break」を記述します。
このbreakを記述した時点で、繰り返し処理は中止されるようになります。
結果を表示して見てみましょう。
「1, 2, 3, 終了」と表示され、3の後に繰り返し処理が中止されているのがわかりますね。
このように、foreachの中でbreak構文を使えば、処理を途中で中止することができます。
continue構文の使い方
foreach構文では、break構文の他にcontinue構文があります。
continue構文とは、繰り返しの途中で処理をスキップすることができる構文です。
例えば、条件分岐で「もし〇〇という要素が取り出されたスキップする」というようにすることができます。
※break構文では処理が中止されていましたが、continue構文ではスキップされるだけで処理は継続されます。
実際のコードで書き方を見ていきましょう。
1 2 3 4 5 6 7 8 9 10 11 |
<?php $array = [1, 2, 3, 4, 5]; foreach ($array as $value) { if ($value === 3) { continue; } echo $value."<br>"; } ?> |
break構文の時と同じように、「1, 2, 3, 4, 5」が入った配列「$array」を用意します。
そして、foreachで「$array as $value」とし、配列の要素を順に取得します。
foreachの中は、「3が取得されたらスキップする」という処理を行うために、if文で「$value === 3」と条件分岐を作り、「continue」と指定します。
if文の後、「echo $value」で配列の中身を表示しましょう。
結果を表示すると、次のようになります。
結果は「1, 2, 4, 5」となり、「3」だけがスキップされていますね。
このように、continue構文を使うと、指定した要素をスキップして繰り返し処理を行うことができます。
foreach構文を学習する際は、break構文やcontinue構文の使い方も理解しておくといいでしょう。
まとめ
今回は、PHPのforeach構文の使い方について徹底的に解説しました。
foreachはPHPで配列の繰り返し処理をする際に役立つ構文です。
普通の配列だけでなく、連想配列の繰り返し処理も行うことができるので、とても便利です。
また、break構文やcontinue構文を使うことで、指定の場所で処理を終了させたり、スキップしたりすることもできます。
なので、使い方を覚えておくといいでしょう。
この記事がPHPの学習に役立つと幸いです。