PHPのforeachとは?基本的な使い方を初心者向けにやさしく解説

  • PR
  • プログラミング
PHPのforeachとは?基本的な使い方を初心者向けにやさしく解説

この記事ではプログラミング言語「PHP」におけるforeachの使い方について詳しく解説します。この記事は次の方におすすめできる内容です。



▼この記事がおすすめの人

  • foreachの意味や概念について理解したい
  • foreachの構文やコードの書き方について知りたい
  • コピペで使えるサンプルコードを取得したい
foreachはPHPプログラミングの基礎ともいえる内容です。PHPを学習中の方はこの機会にぜひチェックして下さいね!!

▼この記事を書いたひと

フリーランスみやしも(@miyashimo_blog)です。プログラミングやWebサイト制作に関するITの情報を幅広くお届けしていきます。

PHPのforeachとは?意味やできることを解説

まずはPHPにおけるforeachとはどういったものなのか、何ができるのかといった概念的な所から確認していきましょう。

PHPのforeachについて

今回解説する「foreach(フォーイーチ)」配列やオブジェクトに対して繰り返し処理ができるPHPの基本構文です。



foreachはforやwhileに並ぶ"繰り返し処理"を行うためのループ構文ですが、中でもforeachは配列の処理に特化しているという点で特徴的です。

PHPでプログラミングをしていると「配列のデータをまとめて処理したい」という事が度々ありますが、foreachはまさにこの様な場面で便利に使える構文です。

foreachを扱うには前提として配列に対する理解が求められますが、使いこなせば簡潔なコードで効率的に配列を処理できる様になります。

foreachの構文2種類

foreachは次の2種類の構文に従ってコードを書くことができます。



▼foreachの構文

// 1.シンプルな配列のループ処理
foreach ($array as $value) {
    // ループ内の処理
}

// 2.ループ内でキーと要素を使う場合
foreach ($array as $key => $value) {
    // ループ内の処理
}



foreach構文の$arrayにはループ処理の対象になる変数を指定します。変数には配列またはオブジェクトが指定できます。別のデータ型や初期化前の変数に使うとエラーになるので注意しましょう。



asの後ろにつく$valueは配列の要素を受け取るための変数であり、foreachのループ内で利用できます。この変数にはループ毎に配列の要素が1つずつ代入されます。また「as $key => $value」の構文を使えば、$keyにその要素のキーが代入されます。

foreachについて文章で解説しましたが、実際はコードを読んだり動かしながらの方が覚えやすいです。引き続きコードを見ながらforeachに対する理解を深めていきましょう。

foreachの基本的な使い方

ここからは実際のコードを交えつつ、foreachの基本的な使い方について解説していきます。

配列の繰り返し処理をする

まずはforeachを使って配列の繰り返し処理をする方法を確認しましょう。


▼PHPコード

// 配列を定義する
$fruits = array("リンゴ", "オレンジ", "バナナ");

// 配列の中身を順番に出力する
foreach ($fruits as $fruit) {
    echo "$fruit\n";
}


▼実行結果

リンゴ
オレンジ
バナナ
上記のコードでは$fruitsに格納されている配列の要素を、foreachを使って順番に出力しています。PHPでは最も基本的なforeachの使い方です。

要素からキーと値の両方を取り出す

foreachで「as $key => $value」の構文を使うと、ループ内で配列の要素のキーと値の両方が使用できます。


▼PHPコード

// 配列を定義する
$ages = array("Alice" => 25, "Bob" => 30, "Charlie" => 35);

// 配列の中身を順番に出力する
foreach ($ages as $name => $age) {
    echo "$name の年齢は $age 歳です。\n";
}


▼実行結果

Alice の年齢は 25 歳です。
Bob の年齢は 30 歳です。
Charlie の年齢は 35 歳です。
上記のコードでは「as $key => $value」の構文を使うことで、ループ内で要素のキーと値をそれぞれ取り出して使っています。この構文は連想配列のループ処理でよく使われます。

foreachの応用的な使い方

ここからは少し進んで、foreachの応用的な使い方について解説します。

continueを使ってループをスキップする

foreach内でcontinueを使用すると、現在のループをスキップして次のループに移ることができます。


▼PHPコード

$numbers = array(1, 2, 3, 4, 5);

foreach ($numbers as $number) {
    if ($number == 3) {
        continue; // 反復処理をスキップ
    }
    echo "Number: $number\n";
}

echo "ループが終了しました。\n";


▼実行結果

Number: 1
Number: 2
Number: 4
Number: 5
ループが終了しました。


上記のコードでは配列の要素をループして値が3である場合に、そのループ処理をスキップしています。

continueは条件に当てはまる特定の要素だけ処理したくない場合など、ループ内で続けるべき処理を飛ばしたい時に効果的に使うことができます。

breakを使ってループを終了させる

foreachでbreakを使用すれば、特定の条件を満たした時にループを終了させる事ができます。


▼PHPコード

$numbers = array(1, 2, 3, 4, 5);

foreach ($numbers as $number) {
    echo "Number: $number\n";
    if ($number == 3) {
        break; // ループを終了
    }
}

echo "ループが終了しました。\n";


▼実行結果

Number: 1
Number: 2
Number: 3
ループが終了しました。
先ほどのcontinueとは異なり、breakは残るループも含めたforeach全体の処理を終了します。それぞれ目的に合わせて使い分けてみましょう。

オブジェクトをループ処理する

foreachはオブジェクトのプロパティをループ処理することも可能です。


▼PHPコード

// クラスを定義
class Person {
    public $name;
    public $age;
    
    public function __construct($name, $age) {
        $this->name = $name;
        $this->age = $age;
    }
}

// オブジェクトを作成
$person = new Person("Alice", 25);

// オブジェクトのプロパティをループ処理
foreach ($person as $property => $value) {
    echo "$property: $value\n";
}


▼実行結果

name: Alice
age: 25


foreachは反復可能なデータとして配列とオブジェクトの2種類に対応していますが、オブジェクトの場合はプロパティに対してループ処理することが可能です。

実際にプロパティに対してループを行うケースは少ないと思いますが、foreachでできる事の1つとして覚えておくと良いでしょう。

foreachを上手に活用するコツ

このほかforeachを使ってコードを書くうえでのコツをいくつか解説します。

foreach構文を使い分ける

PHPのforeachには2つの構文があることをお伝えしましたが、いずれも次の様に考えて使い分けることができます。



▼foreach構文の使い分け

  • foreach ($array as $value)
    ⇒foreachの中で値のみ使用する場合。シンプルな添字配列を処理する場合によく使います。
  • foreach ($array as $key => $value)
    ⇒foreachの中でキーと値の両方を使う場合。キーが重要な情報を含む連想配列を処理する場合によく使います。
foreachを使いこなして読みやすく簡潔なコードを書くためにも、2つの構文の使い分けを意識してみましょう。

ループ構文を使い分ける

PHPにはいくつかのループ構文があり、それぞれに適した使い方があります。ここで主要なループに構文について使い分け方を紹介します。



▼ループ構文の使い分け

  • for: 繰り返し回数が明確な場合や、配列の要素にインデックスを使ってアクセスする場合に適している。
  • foreach: 配列やオブジェクトの要素を順に処理する場合に適している。
  • while: 繰り返し回数が予め決まっていない場合や事前に条件をチェックしたい場合に適している。
foreachを使い繰り返し処理を実装するにあたっては「やりたい事に適したループ構文であるか?」という事も検討してみましょう。

公式リファレンスを活用しよう

今回はforeachを初心者向けに説明しましたが、より詳しい挙動についてはPHPの公式リファレンスで確認しましょう。リファレンスは「公式マニュアル」と同じ意味合いで使われるプログラミング用語です。



▼PHP公式サイト

PHP:言語リファレンス

PHPのプログラミングでは上記の公式リファレンスに頼る事が多くあります。PHPについて学習中の方も公式リファレンスはブックマークしておくのが推奨です。

この記事のまとめ

この記事ではプログラミング言語「PHP」におけるforeachの使い方について解説していきました。



いずれもプログラム開発やWebサイト制作など、幅広いPHPプログラミングの目的でご活用頂きたい情報です。



このほか当ブログではプログラミングで役立つ情報を多数掲載しています。あわせてご活用くださいませ。



▼関連記事を探す

プログラミングの記事一覧

今回は以上となります。最後までお読みいただき、ありがとうございました!