PHPのforeach|配列の中身を順番に表示する
foreachは、配列の中身を順番に取り出して処理するための書き方です。
たとえば、$fruits という配列に「りんご」「バナナ」「みかん」が入っている場合、foreachを使うと、それぞれの値を1つずつ取り出して表示できます。
配列を学んだあとにforeachを覚えると、PHPで複数のデータを扱う感覚がかなりつかみやすくなります。
この記事で分かること
この記事では、PHPのforeachについて、次の内容を整理します。
- foreachとは何か
- foreachを使う理由
- foreachの基本的な書き方
- $fruits as $fruit の意味
- 配列の中身を順番に表示する流れ
- foreachとechoの組み合わせ
- よくあるつまずきポイント
foreachは、最初だけ少し読みにくく感じるかもしれません。
ただ、考え方としては
「配列の中身を1つずつ取り出す」
だけです。
まずは、配列とセットでゆっくり見ていきます。
- 先に結論だけ読む
-
PHPのforeachは、配列の中身を1つずつ取り出して処理するための構文です。
PHP<?php $fruits = ["りんご", "バナナ", "みかん"]; echo $fruits[0] . "<br>"; echo $fruits[1] . "<br>"; echo $fruits[2] . "<br>";このコードでは、$fruits に入っている値を、先頭から順番に $fruit に取り出しています。
そのため、ブラウザには次のように表示されます。
PHP<?php $fruits = ["りんご", "バナナ", "みかん"]; foreach ($fruits as $fruit) { echo $fruit . "<br>"; }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 に入れて処理しています。
表示結果は次のようになります。
りんごバナナみかんPlaintextforeachを使うと、配列の中身が3つでも、10個でも、基本の書き方は同じです。
foreachの流れを図で見る
foreachの流れを図で確認しておきます。

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 | 元になる配列 |
| as | 1つずつ取り出す |
| $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
30Plaintext配列の中身が文字でも数字でも、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>HTMLPHPでは、このように配列と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 $fruitPHPPHPでは、処理の終わりにセミコロンを書くことを忘れないようにしましょう。
配列ではないものを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で簡単なお問い合わせフォームの形を作る

