🔄 はじめに:同じコードを100回書くの?
こんにちは、「ぷろぐらの森」です🌲
突然ですが、ゲーム画面に「スライム」を100体登場させたい時、あなたならどうプログラムを書きますか?
##PHP##
// ❌ 悪い例:手作業で書く
echo "スライムが現れた!<br>";
echo "スライムが現れた!<br>";
echo "スライムが現れた!<br>";
// ...あと97回書くの!?
これでは日が暮れてしまいますし、もし「スライム」を「ゴブリン」に変えたくなったら修正も地獄です。
プログラミングには、こうした単純作業を自動化する「ループ処理(繰り返し)」という魔法があります。
今回は、回数を指定して繰り返す「for文」と、アイテムリストなどを順番に処理する「foreach文」をマスターして、効率的なゲーム開発を目指しましょう!
1. for文:回数を決めて繰り返す
「敵を10体出す」「レベルが1上がるまで経験値を加算する」など、
繰り返す回数が決まっている時は for 文を使います。

📝 基本構文
##PHP##
for (スタート値; 終わる条件; 増え方) {
// 繰り返したい処理
}
実際に「スライムA」から「スライムE」までの5体を出現させてみましょう。
##PHP##
// $i は「カウンター」のような変数です
for ($i = 1; $i <= 5; $i++) {
echo "スライム" . $i . "が現れた!<br>";
}
解説:
$i = 1: カウンターを1にセット。$i <= 5: カウンターが5以下の間はずっと繰り返す。$i++: 1回終わるごとにカウンターを1増やす。
実行結果:
スライム1が現れた!
スライム2が現れた!
…
スライム5が現れた!
たった3行で5回(数字を変えれば100回でも!)表示できました。
2. foreach文:配列の中身を全部出す
ゲーム開発で for 文以上によく使うのが、この foreach(フォーイーチ)文です。
これは、前回の記事で作った「アイテム図鑑(配列)」のような、データのリストを順番に取り出すのに特化しています。

📝 基本構文
##PHP##
foreach ($配列 as $中身を入れる変数) {
// 処理
}
実践:所持アイテムをリスト表示しよう
主人公が持っているアイテムの配列があるとします。
##PHP##
$items = ["回復薬", "毒消し草", "世界樹の葉"];
echo "<ul>"; // リスト開始
foreach ($items as $item) {
echo "<li>" . $item . "を使う</li>";
}
echo "</ul>";
実行結果:
- 回復薬を使う
- 毒消し草を使う
- 世界樹の葉を使う
for 文のように「何回繰り返すか」を数える必要はありません。
foreach は、「箱(配列)の中身がなくなるまで」自動で繰り返してくれます。
アイテムが1個でも100個でも、コードは書き換えなくてOKです!
3. 【応用】連想配列で「敵リスト」を表示
もう少しレベルアップして、「敵の名前」と「HP」が入った連想配列(データベースのような構造)をループで処理してみましょう。
##PHP##
// 敵データのリスト(多次元配列)
$enemies = [
["name" => "スライム", "hp" => 10],
["name" => "ドラゴン", "hp" => 500],
["name" => "魔王", "hp" => 9999]
];
foreach ($enemies as $enemy) {
// $enemy の中には、1体ごとのデータが入る
echo "敵名:" . $enemy["name"] . " (HP:" . $enemy["hp"] . ")<br>";
}
実行結果:
敵名:スライム (HP:10)
敵名:ドラゴン (HP:500)
敵名:魔王 (HP:9999)
Webサイトの「記事一覧」や「商品リスト」も、裏側ではこのようにデータベースからデータを取得し、foreach でHTMLに変換して表示しているのです。
4. まとめ:ループ処理で「自動化」しよう
今回は、プログラミングの効率を劇的に上げる2つのループ処理を解説しました。
| 構文 | 特徴 | ゲームでの使い所 |
| for | 回数を指定する | 経験値の計算、固定数の敵配置 |
| foreach | 配列の全要素を使う | アイテム一覧、ランキング表示、記事リスト |
特に foreach は、PHPでWebアプリを作る上で一生使い続ける超重要テクニックです。
前回学んだ「配列」とセットで必ず覚えておきましょう!
次回は、これまで学んだ「配列」「if文」「ループ」を総動員して、
「簡単なバトルシミュレーター」を作ってみましょう!
お楽しみに!

コメント