PHP

【PHP】for文を使った二重ループをわかりやすく解説

PHPの「二重ループ文」についてざっくり解説します。
詳細はPHPマニュアルを確認してください。

サンプルコード上に出てくるvar_dumpの使い方はこちらの記事を参考にしてください!

【PHP初学者向け】var_dump()ってなに? あけお スクールに多額のお金を支払う前に、僕の記事で学習してみてね!! こんな人に読んでほしい 「var_dump(...

1. 書き方

for (初期値; 条件式; 増減式) {

   for (初期値; 条件式; 増減式) {

      処理をここに書く

   }

}

2. 使い方

サンプルコード①

<?php

for ($i = 0; $i < 3; $i++) {
    
    var_dump("ここは二重ループの外側です。");
    
    for ($j = 0; $j < 3; $j++) {
        
        var_dump("こんにちは!");
        
    }
    
}
このコードの実行結果はこちら
string(42) "ここは二重ループの外側です。"
string(18) "こんにちは!"
string(18) "こんにちは!"
string(18) "こんにちは!"
string(42) "ここは二重ループの外側です。"
string(18) "こんにちは!"
string(18) "こんにちは!"
string(18) "こんにちは!"
string(42) "ここは二重ループの外側です。"
string(18) "こんにちは!"
string(18) "こんにちは!"
string(18) "こんにちは!"

外側のfor文は「$i」(アイ)
内側のfor文は「$j」(ジェイ)

を使っています!同じ変数だとうまくいかないので要注意です!!!

サンプルコード②

<?php
$sports = ["野球", "サッカー", "バスケ"];
$season = ["春", "夏", "秋", "冬"];

for ($i = 0; $i < 3; $i++) {
    
    var_dump($sports[$i]);
    
    for ($j = 0; $j < 4; $j++) {
        
        var_dump($season[$j]);
        
    }
    
}
このコードの実行結果はこちら
string(6) "野球"
string(3) "春"
string(3) "夏"
string(3) "秋"
string(3) "冬"
string(12) "サッカー"
string(3) "春"
string(3) "夏"
string(3) "秋"
string(3) "冬"
string(9) "バスケ"
string(3) "春"
string(3) "夏"
string(3) "秋"
string(3) "冬"

$iと$jをうまく使ってこんなこともできます

サンプルコード③

<?php
$price = [250, 500, 1000];
$quantity = [1, 3, 5];

$totalPrice = 0;
for ($i = 0; $i < 3; $i++) {
    
    for ($j = 0; $j < 3; $j++) {
        
        $totalPrice += $price[$i] * $quantity[$j];
        
    }
    
}
var_dump($totalPrice);
このコードの実行結果はこちら
int(15750)

二重ループを使って下記の計算をしています

1週目
250 * 1
250 * 3
250 * 5

2週目
500 * 1
500 * 3
500 * 5

3週目
1000 * 1
1000 * 3
1000 * 5