PHP の配列をループ処理する方法(foreach の使い方)
新人
「PHPで配列のデータを順番に処理する方法はありますか?」
先輩
「PHPではループ処理を使うことで、配列のデータを1つずつ処理できますよ。」
新人
「ループ処理って何ですか?」
先輩
「ループとは、同じ処理を繰り返す仕組みのことです。では、基本から学んでいきましょう!」
1. ループ処理とは?
ループ処理とは、同じ処理を繰り返し実行する仕組みです。
例えば、「りんご」「バナナ」「みかん」のリストがあるとします。これを手動で1つずつ出力するのは面倒ですが、ループを使うと自動で処理できます。
ループの仕組み
ループ処理を使うと、次のようにデータを繰り返し表示できます。
$fruits = ["りんご", "バナナ", "みかん"];
foreach ($fruits as $fruit) {
echo $fruit . "<br>";
}
このコードを実行すると、以下のように出力されます。
りんご
バナナ
みかん
このように、ループを使えばリスト内のデータを1つずつ処理できます。
2. PHP のループ処理の種類
PHP には複数のループ処理があります。それぞれの特徴を見ていきましょう。
for ループ
for
ループは、繰り返す回数を指定して処理を実行できます。
for ($i = 0; $i < 5; $i++) {
echo "これは " . ($i + 1) . " 回目の処理です。<br>";
}
実行結果:
これは 1 回目の処理です。
これは 2 回目の処理です。
これは 3 回目の処理です。
これは 4 回目の処理です。
これは 5 回目の処理です。
while ループ
while
ループは、条件が満たされている間、処理を繰り返します。
$count = 0;
while ($count < 3) {
echo "カウント: " . $count . "<br>";
$count++;
}
実行結果:
カウント: 0
カウント: 1
カウント: 2
foreach ループ
foreach
ループは、配列のデータを順番に処理するときに最も便利です。
$colors = ["赤", "青", "緑"];
foreach ($colors as $color) {
echo $color . "<br>";
}
実行結果:
赤
青
緑
このように、foreach
は配列のデータを簡単に処理できるので、PHP でよく使われるループです。
3. foreach ループの基本的な使い方(数値配列のループ処理)
foreach
ループは、配列のすべての要素を順番に処理するときに便利なループです。
例えば、以下のような配列があるとします。
$numbers = [1, 2, 3, 4, 5];
foreach ($numbers as $number) {
echo "数値: " . $number . "<br>";
}
実行結果:
数値: 1
数値: 2
数値: 3
数値: 4
数値: 5
このように、$numbers
配列の各要素が $number
に代入され、順番に処理されます。
4. 連想配列を foreach でループ処理する方法
連想配列では、foreach
を使って「キー」と「値」をセットで取得できます。
例えば、ユーザーの情報を持つ連想配列をループ処理する場合:
$user = [
"名前" => "田中",
"年齢" => 30,
"職業" => "エンジニア"
];
foreach ($user as $key => $value) {
echo $key . ": " . $value . "<br>";
}
実行結果:
名前: 田中
年齢: 30
職業: エンジニア
このように、キー(項目名)と値(データ)をそれぞれ取得し、画面に表示できます。
5. 多次元配列を foreach でループ処理する方法
多次元配列とは、配列の中に配列が入っている構造のことです。
例えば、以下のような配列を処理してみましょう。
$users = [
["名前" => "田中", "年齢" => 30, "職業" => "エンジニア"],
["名前" => "佐藤", "年齢" => 25, "職業" => "デザイナー"],
["名前" => "鈴木", "年齢" => 28, "職業" => "マーケター"]
];
foreach ($users as $user) {
foreach ($user as $key => $value) {
echo $key . ": " . $value . "<br>";
}
echo "<br>";
}
実行結果:
名前: 田中
年齢: 30
職業: エンジニア
名前: 佐藤
年齢: 25
職業: デザイナー
名前: 鈴木
年齢: 28
職業: マーケター
このように、foreach
をネスト(入れ子)することで、多次元配列の各データを順番に取得できます。
6. foreach でループ処理中にキーや値を変更する方法
foreach
を使うと、ループ中に値を変更できます。ただし、値を直接変更しても元の配列には影響しません。
値を変更する例
以下のコードでは、配列の要素に「さん」を追加して表示しています。
$names = ["田中", "佐藤", "鈴木"];
foreach ($names as $name) {
$name .= "さん";
echo $name . "<br>";
}
print_r($names);
実行結果:
田中さん
佐藤さん
鈴木さん
Array
(
[0] => 田中
[1] => 佐藤
[2] => 鈴木
)
元の配列の値は変更されていないことが分かります。
元の配列も変更する方法
元の配列を変更するには、&
(参照)を使います。
foreach ($names as &$name) {
$name .= "さん";
}
print_r($names);
実行結果:
Array
(
[0] => 田中さん
[1] => 佐藤さん
[2] => 鈴木さん
)
&$name
にすることで、元の配列のデータを直接変更できます。
7. foreach のループ処理を応用した実践的な使い方(データ出力の自動化)
実際の開発では、データを自動でHTMLテーブルとして表示することがよくあります。
配列のデータをHTMLテーブルに変換
$users = [
["名前" => "田中", "年齢" => 30, "職業" => "エンジニア"],
["名前" => "佐藤", "年齢" => 25, "職業" => "デザイナー"],
["名前" => "鈴木", "年齢" => 28, "職業" => "マーケター"]
];
echo "<table border='1'>";
echo "<tr><th>名前</th><th>年齢</th><th>職業</th></tr>";
foreach ($users as $user) {
echo "<tr>";
foreach ($user as $value) {
echo "<td>" . $value . "</td>";
}
echo "</tr>";
}
echo "</table>";
実行結果:
<table border='1'>
<tr><th>名前</th><th>年齢</th><th>職業</th></tr>
<tr><td>田中</td><td>30</td><td>エンジニア</td></tr>
<tr><td>佐藤</td><td>25</td><td>デザイナー</td></tr>
<tr><td>鈴木</td><td>28</td><td>マーケター</td></tr>
</table>
このように、配列のデータを使って自動でHTMLテーブルを作成できます。
8. PHP の foreach を学ぶためのおすすめの方法(オンラインリソースや学習サイト)
PHP の foreach
をより深く学ぶために、以下のリソースを活用しましょう。
公式ドキュメント
PHP の公式ドキュメントは、最新の情報がまとまっているのでおすすめです。
学習サイト
初心者向けの学習サイトもあります。
実際にコードを書いて学ぶ
学習を進めるには、実際にコードを書いて試すのが一番です。
PHP はローカル環境だけでなく、オンラインの実行環境 でも試すことができます。
学習のポイント:
- 配列を作成して、
foreach
で繰り返し処理をしてみる - 連想配列を使って、キーと値を取り出す練習をする
- 多次元配列を
foreach
で処理するコードを書いてみる - HTML テーブルを自動生成するコードを試してみる
これらを実践することで、foreach
の使い方をしっかりと習得できます。