【6日でできるPHP入門】foreach文

 PHPでは配列を扱う際、forwhileといったループ文を使って値を一つずつ処理することが一般的ですが、連想配列や要素数が不定な配列にはforeach文がとても便利です。
 foreach文は配列の全要素を順番に簡単に取り出して処理できるループ文で、PHPらしい記述としてよく利用されます。この記事では、foreach文の基本的な使い方から応用例まで、具体的なサンプルと一緒に解説します。

1.foreach文の基本

1.1. 基本的な書式と動作

書式例説明
foreach ($配列 as $値) { 処理 }配列の値のみを順番に取得
foreach ($配列 as $キー => $値) { 処理 }キーと値を両方順番に取得

サンプル:値だけを取得する

ファイル名: lesson40_1.php

<?php
$animals = ["犬", "猫", "サル"];
foreach ($animals as $value) {
    echo $value . "<br>";
}
?>

出力結果

1.2. キーと値を同時に取得する

サンプル:キーと値を取得

ファイル名: lesson40_2.php

<?php
$colors = ["red"=>"赤", "blue"=>"青", "yellow"=>"黄"];
foreach ($colors as $key => $value) {
    echo "{$key}の色は{$value}です<br>";
}
?>

出力結果

2.foreach文の活用

2.1. 連想配列への適用

foreach文は、特に連想配列の全要素を扱うときに効果的です。
for文などでは添字の範囲やキーの管理が難しい連想配列でも、foreach文なら自動で全要素にアクセスできます。

サンプル:連想配列への適用

ファイル名: lesson40_3.php

<?php
$user = ["name"=>"佐藤", "age"=>28, "city"=>"福岡"];
foreach ($user as $key => $value) {
    echo "{$key}:{$value}<br>";
}
?>

出力結果

2.2. 添字配列でも使える

実は、添字配列でもforeach文は利用可能です。
キーが自動で0から順に割り当てられます。

サンプル:添字配列で使う

ファイル名: lesson40_4.php

<?php
$fruits = ["みかん", "りんご", "ぶどう"];
foreach ($fruits as $index => $name) {
    echo "{$index}番目は{$name}<br>";
}
?>

出力結果

3.foreach文の注意点とテクニック

  • foreach文は配列以外には使えません(配列以外だとエラー)
  • ループ内で値を書き換えるときは「参照渡し」に注意
    (※「&」を付けると元の配列を直接変更できる)

サンプル:参照による値の変更

ファイル名: lesson40_5.php

<?php
$nums = [1, 2, 3];
foreach ($nums as &$value) {
    $value *= 10;
}
print_r($nums);
?>

出力結果


まとめ

  • foreach文は配列の全要素を簡単に処理できる便利なループ文
  • 連想配列でも添字配列でも使える。
  • キーと値を同時に取り出して扱うことができる。
  • 配列処理の必須テクニックなので、積極的に使っていきましょう!