PHP
PR

PHPのforeach|配列の中身を順番に表示する

PHP 3-1の記事用アイキャッチ画像。foreachを使って配列の中身を順番に表示する基本を表現している。
toshi
記事内に商品プロモーションを含む場合があります

この記事は、PHPの「foreach」について、初学者向けに整理する記事です。

前回の記事では、配列を使って複数の値をまとめて扱う基本を確認しました。

今回は、その配列の中身を1つずつ取り出して、順番に表示する foreach を見ていきます。

foreachは、配列の中身を順番に取り出して処理するための書き方です。

たとえば、$fruits という配列に「りんご」「バナナ」「みかん」が入っている場合、foreachを使うと、それぞれの値を1つずつ取り出して表示できます。

配列を学んだあとにforeachを覚えると、PHPで複数のデータを扱う感覚がかなりつかみやすくなります。

この記事で分かること

この記事では、PHPのforeachについて、次の内容を整理します。

  • foreachとは何か
  • foreachを使う理由
  • foreachの基本的な書き方
  • $fruits as $fruit の意味
  • 配列の中身を順番に表示する流れ
  • foreachとechoの組み合わせ
  • よくあるつまずきポイント

foreachは、最初だけ少し読みにくく感じるかもしれません。

ただ、考え方としては
「配列の中身を1つずつ取り出す」
だけです。

まずは、配列とセットでゆっくり見ていきます。

Q
先に結論だけ読む

PHPのforeachは、配列の中身を1つずつ取り出して処理するための構文です。

<?php

$fruits = ["りんご", "バナナ", "みかん"];

echo $fruits[0] . "<br>";
echo $fruits[1] . "<br>";
echo $fruits[2] . "<br>";
PHP

このコードでは、$fruits に入っている値を、先頭から順番に $fruit に取り出しています。

そのため、ブラウザには次のように表示されます。

<?php

$fruits = ["りんご", "バナナ", "みかん"];

foreach ($fruits as $fruit) {
    echo $fruit . "<br>";
}
PHP

foreachは、配列の要素を1つずつ取り出したいときに使います。

foreachとは?

foreachとは、配列の中身を順番に取り出して処理するための書き方です。

PHPでは、配列に複数の値を入れられます。

たとえば、前回の記事では次のような配列を扱いました。

$fruits = ["りんご", "バナナ", "みかん"];
PHP

この配列には、3つの値が入っています。

  • りんご
  • バナナ
  • みかん

この中身を順番に表示したいときに使えるのが foreach です。

foreachを使わない場合

まずは、foreachを使わない場合を見てみます。

配列の中身を1つずつ指定して表示するなら、次のように書けます。

<?php

$fruits = ['りんご', 'バナナ', 'みかん'];

	echo $fruits[0];
	echo $fruits[1];
	echo $fruits[2];

?>
PHP

このコードでも、配列の中身は表示できます。

ただし、値が増えるたびに、echoを書く行も増えていきます。

たとえば、要素が10個、20個、30個と増えていくと、1つずつ番号を指定して書くのは大変です。

配列の中身が少ないうちは、$fruits[0] のように番号で取り出しても問題ありません。

でも、配列の数が増えてくると、1つずつ書く方法は管理しにくくなります。

foreachを使うと順番に取り出せる

foreachを使うと、配列の中身を先頭から順番に取り出せます。

<?php

$fruits = ['りんご', 'バナナ', 'みかん'];

foreach ($fruits as $fruit) {
    echo $fruit;
}
PHP

このコードでは、$fruits の中にある値を、1つずつ $fruit に入れて処理しています。

表示結果は次のようになります。

りんごバナナみかん
Plaintext

foreachを使うと、配列の中身が3つでも、10個でも、基本の書き方は同じです。

foreachの流れを図で見る

foreachの流れを図で確認しておきます。

PHPのforeachで配列の要素を1つずつ取り出し、りんご、バナナ、みかんを順番に表示する流れを説明した図
foreachを使うと、配列の中身を1つずつ取り出して、順番に表示できます。

foreachは、配列の先頭から順番に値を取り出します。

今回の例では、次の流れになります。

  • 1回目:りんごを取り出す
  • 2回目:バナナを取り出す
  • 3回目:みかんを取り出す

このように、配列の中身を1つずつ取り出して、同じ処理を繰り返せるのがforeachです。

foreachの基本形

foreachの基本形は、次のようになります。

foreach ($array as $value) {
    // 繰り返したい処理
}
PHP

この形を見たときに、最初は少し読みにくいかもしれません。

分けて見ると、次のようになります。

部分役割
foreach配列を順番に取り出すための構文
$array元になる配列
as配列から1つずつ取り出すという意味
$value取り出した1つ分の値を入れる変数
{ }繰り返し実行する処理を書く場所

つまり、foreachは
「配列の中身を1つずつ取り出して、そのたびに処理する」
ための書き方です。

$fruits as $fruit の意味

今回よく出てくる形が、次の書き方です。

foreach ($fruits as $fruit) {
    // 繰り返したい処理
}
PHP

これは、次のような意味です。

部分意味
$fruits元になる配列
as1つずつ取り出す
$fruit取り出した1つ分の値を入れる変数

$fruits は、複数の値が入っている配列です。

$fruit は、その中から1つずつ取り出された値を一時的に入れる変数です。

$fruits は配列全体です。

$fruit は、foreachで取り出された1つ分の値です。

名前が似ているので、最初は混乱しやすいですが、複数形と単数形で考えると分かりやすくなります。

echoと組み合わせて表示する

foreachで取り出した値は、echoで表示できます。

<?php

$fruits = ['りんご', 'バナナ', 'みかん'];

foreach ($fruits as $fruit) {
    echo $fruit;
}

?>
PHP

このコードでは、foreachが1回動くたびに、$fruit の中身が変わります。

  • 1回目:$fruit に りんご が入る
  • 2回目:$fruit に バナナ が入る
  • 3回目:$fruit に みかん が入る

そして、それぞれをechoで表示しています。

改行して表示する

そのままechoすると、表示がくっついてしまうことがあります。

そこで、改行タグを文字列としてつなげると、見やすく表示できます。

<?php

$fruits = ['りんご', 'バナナ', 'みかん'];

foreach ($fruits as $fruit) {
    echo $fruit . '<br>';
}

?>
PHP

表示結果は、次のようになります。

りんご
バナナ
みかん
Plaintext

このように、foreachとechoを組み合わせると、配列の中身を順番に表示できます。

数字の配列でもforeachは使える

foreachは、文字列の配列だけでなく、数字の配列にも使えます。

<?php

$numbers = [10, 20, 30];

foreach ($numbers as $number) {
    echo $number . '<br>';
}

?>
PHP

この場合、表示結果は次のようになります。

10
20
30
Plaintext

配列の中身が文字でも数字でも、foreachの基本的な考え方は同じです。

HTMLと組み合わせて表示する

foreachは、HTMLと組み合わせて使うこともできます。

たとえば、配列の中身をリストとして表示したい場合は、次のように書けます。

<?php

$fruits = ['りんご', 'バナナ', 'みかん'];

?>

<ul>
    <?php foreach ($fruits as $fruit) { ?>
        <li><?php echo $fruit; ?></li>
    <?php } ?>
</ul>
PHP

このコードでは、配列の中身をliタグとして表示しています。

ブラウザでは、次のようなリストになります。

<ul>
    <li>りんご</li>
    <li>バナナ</li>
    <li>みかん</li>
</ul>
HTML

PHPでは、このように配列とHTMLを組み合わせて使う場面がよくあります。

WordPressテーマでも、投稿一覧やメニュー一覧など、複数のデータを順番に表示する考え方につながっていきます。

PHP単体では、foreachで配列の中身を順番に表示できます。

WordPressでは、この考え方が投稿一覧、カテゴリ一覧、メニュー表示などの理解にもつながっていきます。

foreachでよくあるつまずきポイント

foreachは便利ですが、最初につまずきやすいポイントもあります。

$fruits と $fruit を混同する

foreachでは、元の配列と、取り出した1つ分の値を別の変数として扱います。

$fruits = ['りんご', 'バナナ', 'みかん'];

foreach ($fruits as $fruit) {
    echo $fruit;
}
PHP

$fruits は配列全体です。

$fruit は、配列から取り出された1つ分の値です。

この2つを混同しないようにしましょう。

as の向きを逆に考えてしまう

foreachでは、次のように書きます。

foreach ($fruits as $fruit) {
    // 繰り返したい処理
}
PHP

意味としては、

「$fruits から1つずつ取り出して、$fruit に入れる」

です。

$fruit から $fruits に入れるわけではありません。

{ } の中に処理を書く

foreachで繰り返したい処理は、波かっこ { } の中に書きます。

foreach ($fruits as $fruit) {
    echo $fruit;
}
PHP

この場合、echo $fruit; が、配列の要素の数だけ繰り返されます。

セミコロンを忘れる

echoの行の最後には、セミコロンが必要です。

echo $fruit;
PHP

次のようにセミコロンがないと、エラーの原因になります。

echo $fruit
PHP

PHPでは、処理の終わりにセミコロンを書くことを忘れないようにしましょう。

配列ではないものをforeachしようとする

foreachは、基本的に配列の中身を順番に取り出すためのものです。

配列ではない普通の文字列や数字に対して使うと、意図した動きにならないことがあります。

まずは、foreachは配列とセットで使うと覚えておくと安心です。

今日のまとめチェック

この記事の内容は、次のポイントが分かればOKです。

  • foreachは配列の中身を順番に取り出す構文だと分かった
  • $fruits は配列全体、$fruit は1つ分の値だと分かった
  • foreach ($fruits as $fruit) の意味が分かった
  • echoと組み合わせて配列の中身を表示できると分かった
  • 改行タグをつなげると、表示を見やすくできると分かった
  • foreachはHTML表示にもつながると分かった
  • 配列とforeachはセットでよく使うと分かった

全部を暗記しなくても大丈夫です。

まずは、
「配列の中身を1つずつ取り出すのがforeach」
と覚えておきましょう。

まとめ

今回は、PHPのforeachについて整理しました。

foreachを使うと、配列の中身を1つずつ取り出して、順番に処理できます。

<?php

$fruits = ['りんご', 'バナナ', 'みかん'];

foreach ($fruits as $fruit) {
    echo $fruit . '<br>';
}

?>
PHP

このコードでは、$fruits に入っている値を、先頭から順番に $fruit に取り出しています。

そして、取り出した値をechoで表示しています。

foreachは、PHPで複数のデータを扱うときによく使う構文です。

配列だけを学んだ段階では、まだ「複数の値をまとめた」だけでした。

そこにforeachを組み合わせることで、
「まとめた値を順番に取り出して使う」
ことができるようになります。

次は、フォームから送られた文字をPHPで受け取る基本に進みます。

PR:PHP学習の最初の参考書として、必要な方だけ見てください。
記事内の内容だけでも進められますが、手元に1冊あると、
PHPの基本文法やフォーム処理をまとめて確認しやすくなります。
※価格や在庫、版数は変わるため、最終確認はリンク先でお願いします。

次に読む

次は、PHP 3-2でフォームの基本に進みます。

PHPフォームでは、入力欄に書いた文字をPHPで受け取る方法を確認します。

PHP 3章の流れ

PHP 3章では、配列とフォーム処理に進みます。

  • PHP 3-1:PHPのforeach。配列の中身を順番に表示する
  • PHP 3-2:PHPフォームの基本。入力した文字を受け取る
  • PHP 3-3:GETとPOSTの違い。フォーム送信の基本を整理する
  • PHP 3-4:PHPで簡単なお問い合わせフォームの形を作る

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

ABOUT ME
toshi
toshi
フルスタックエンジニア
C型肝炎や感染症の闘病を経て現在通院中
フリーランスとして今日を生きる、それがすべて。
静かな光の中で、歩みを止めずに生きていく。
実験大好きなので色々とやっていきます。
記事URLをコピーしました