PHPのforeach文で配列をループ処理する方法【初心者向け】

PHPの「配列」は、複数の関連データを一つの変数にまとめて管理できる、非常に便利な機能です。しかし、配列に格納した10個や100個のデータをすべて処理したい場合、echo $array[0];, echo $array[1];… のように一つずつ書き出すのは現実的ではありません。

そんな時に絶大な効果を発揮するのが、**配列専用の繰り返し構文「foreach」**です。

foreachを使えば、配列の中身を先頭から末尾まで自動的に、そして安全に処理することができます。今回は、このforeach文の基本的な使い方を、初心者の方にも分かりやすく解説します。


目次

foreachとは? 〜配列の要素を一つずつ取り出す専門家〜

foreach文は、その名の通り「each(それぞれ)」の要素に対して処理を行う、配列のためだけに用意された特別なループ構文です。

配列という箱に入っている品物を、ベルトコンベアに乗せて一つずつ順番に処理していくイメージです。foreachは配列の要素数を自動で把握してくれるので、開発者は「何回ループさせるか」を気にする必要がありません。


1. foreachの基本構文(キーと値を取得)

まずは、連想配列の「キー」と「値」を両方とも取り出す、最も基本となる書き方です。

【基本構文】

foreach (配列変数 as $key_variable => $value_variable) {
    // 各要素に対する処理
}
  • 配列変数: ループさせたい配列を指定します。
  • $key_variable: 各要素のキーが、ループのたびに一時的に格納される変数です。
  • $value_variable: 各要素のが、ループのたびに一時的に格納される変数です。

変数名 ($key_variable, $value_variable) は自分で自由に決めることができます。

サンプルコード

ユーザープロフィールの連想配列をforeachで処理してみましょう。

<?php
// ユーザープロフィールの連想配列
$user_profile = [
    "name" => "Taro Yamada",
    "age" => 30,
    "city" => "Tokyo"
];

// foreachを使ってキーと値を順番に出力
foreach ($user_profile as $key => $value) {
    echo "{$key}: {$value}<br>";
}

実行結果:

name: Taro Yamada
age: 30
city: Tokyo

このように、配列の各要素がキーと値のペアで順番に取り出され、処理されているのが分かりますね。


2. 値だけを取得する(キーの省略)

連想配列のキーや、インデックス配列の添字(0, 1, 2…)が必要なく、値だけを使いたい場面も多くあります。その場合は、$key => の部分を省略して、よりシンプルに書くことができます。

【キーを省略した構文】

foreach (配列変数 as $value_variable) {
    // 各要素に対する処理
}

サンプルコード

プログラミング言語のリスト(インデックス配列)から、値だけを順番に取り出して表示してみましょう。

<?php
$languages = ["PHP", "JavaScript", "Python", "Ruby"];

foreach ($languages as $lang) {
    echo $lang . "<br>";
}

実行結果:

PHP
JavaScript
Python
Ruby

キーが必要ない分、コードがスッキリして読みやすくなりました。


foreachとHTMLの連携

foreachは、配列のデータをもとに動的にHTMLを生成する際にも非常に役立ちます。例えば、配列に格納された商品リストを、HTMLの箇条書きリスト<ul><li>で表示してみましょう。

<?php
$items = ["ノートPC", "キーボード", "マウス", "Webカメラ"];
?>
<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <title>商品リスト</title>
</head>
<body>
    <h1>取り扱い商品</h1>
    <ul>
        <?php foreach ($items as $item): ?>
            <li><?php echo htmlspecialchars($item, ENT_QUOTES, 'UTF-8'); ?></li>
        <?php endforeach; ?>
    </ul>
</body>
</html>

このコードは、$items配列の要素数だけ<li>タグを自動的に生成してくれます。商品の数が増えたり減ったりしても、PHPコードを修正する必要はありません。


まとめ

今回は、配列を扱う上で欠かせないforeachループについて学びました。

【ポイントの振り返り】

  • **foreach**は、配列の要素を順番に処理するための専用ループ構文。
  • as $key => $valueキーと値の両方を取得できる。
  • as $value値だけをシンプルに取得できる。
  • 配列の要素数を気にせず安全に使えるため、配列のループ処理にはforeachを使うのが基本

for文でも配列のループは可能ですが、要素数を間違えるとエラーの原因になります。foreachを使いこなして、安全で効率的な配列操作をマスターしましょう。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

私が勉強したこと、実践したこと、してることを書いているブログです。
主に資産運用について書いていたのですが、
最近はプログラミングに興味があるので、今はそればっかりです。

目次