PHP – foreach文-繰り返し処理-の使い方を解説

  • 2022.12.07
       
PHP – foreach文-繰り返し処理-の使い方を解説

foreach文とは?

foreach 文を用いることで配列の各要素に対して繰り返し処理を設定できます。

通常の for 文で、配列の各要素に対して処理を設定することもできますが、その場合には繰り返し回数の設定や、表示させる配列の配列番号を指定する必要があり、手間が掛かかります。

そこで使用できるのが foreach 文です。

foreach 文は配列専用の for 文で、この foreach 文を使いこなせると、配列に対する繰り返し処理の実装効率が格段に上昇するので、必ず覚えておきたいです。

それでは基本構文や実用例について見ていきましょう。

foreach文の基本構文と実用例

まずは基本構文から確認していきます。

配列の各要素を変数に代入してから、繰り返したい処理を行うようなイメージです。

代入した変数を繰り返し処理の中で使用することができます。

それでは実用例を見ていきましょう。

実行結果は下記の通りです。

配列の各要素について、繰り返し処理が適用されています。

index を取得したい場合

次に index を取得してみましょう。index とは配列の各要素に自動で割り振られている配列番号のことです。

index 取得の構文は下記の通りです。

「as」の後ろに「$index =>」 を追加するだけです。

それでは実用例を見ていきましょう。

実行結果は下記の通りです。

通常、配列の要素を取得する際には $areas[0] といった形で配列番号を指定しますが、その配列番号をこのように取得できます。

連想配列での使用

続いて連想配列に foreach 文を適用する方法を見ていきましょう。

連想配列に対して foreach 文を使う場合の構文は下記の通りです。

index の取得方法と似ていますね。

普通の配列の場合とは違い、キー名を指定できるようになっています。

それでは連想配列の場合の foreach 文の実用例を見てみましょう。

実行結果は下記の通りです。

このようにキー名と配列要素をセットで繰り返し処理に使用することができます。

応用:多次元配列での使用

更に応用として、多次元配列に foreach 文を適用する方法を見ていきましょう。

最初の基本構文と比較すると難しくなってきますが、ここまで分かれば foreach 文は理解できていると言っても過言ではないでしょう。

実行結果は下記の通りです。

これまでは配列の各要素を $area で表示してきましたが、多次元配列の場合は $area[0], $area[1], $area[2] といった形で $area という配列変数を取り扱う形になります。

foreach文が使えない場合

ここまで配列専用の for 文として foreach 文の使い方を紹介してきました。

しかし foreach 文を使用すると逆に手間が掛かってしまうパターンも存在します。

そういった場合は通常の for 文を使用した方が良いです。

実際に例を見た方が理解が早いかと思いますので、コードを確認してみましょう。

実行結果は下記の通りです。

こういった「次の要素を参照する」ような処理では通常の for 文を使用した方が良いです。foreach 文は index や key と各要素を結び付けて繰り返し処理を設定しているため、こういったパターンは向いていません。(できないことはありませんが…)

「次の要素を参照する」ような処理も使用することはありますので、foreach 文が使えないパターンも知っておくことが大切です。

おまけ:continueとbreak

ここからは余力があれば覚えておきたい使い方になります。

continue と break についてです。

簡単なアプリケーションを作る上ではあまり使用機会がないかもしれませんが、チームとして開発に携わる場合には使用頻度は高いです。まだ余裕がある人は頑張って覚えていきましょう。

簡単に説明すると continue は処理をスキップする役割を持ち、break は処理を中断させる役割を持ちます。

どちらも同じく繰り返し処理の中で使用することが多く、「条件に一致したら continue(break) させる」といった使い方をします。

実際に例を見た方が理解が早いかと思いますので、コードを確認してみましょう。

実行結果は下記の通りです。

本来であれば繰り返し処理で「東京都」「大阪府」「福岡県」「宮城県」が表示されるはずです。

しかし continue を追加した場合では「大阪府」のみ飛ばされており、「東京都」「福岡県」「宮城県」しか表示されていないことが分かると思います。

break を追加した場合では「大阪府」の表示処理の前に break しているため、「東京都」しか表示されませんでした。

このように continue と break は for(foreach) 文の中で使用することが多いので、セットで使えるようになっておきましょう。

まとめ

ここでは foreach 文の、

  • for 文との違い
  • 基本構文と実用例
  • index の取得方法
  • 連想配列や多次元配列での使用方法
  • foreach 文が使えない場合
  • continue と break について

などについて解説しました。foreach 文は配列に対して繰り返し処理を設定することができる便利な処理で、開発でも使用頻度がとても高いです。これを機に foreach 文を使いこなせるようになり、レベルアップしてみてはいかがでしょうか。

初めは構文を見ながらで構いませんので、徐々にできるようになっていきましょう!

     

Programmingカテゴリの最新記事