Foreachループ
CoddyのPHPジャーニー「基礎」セクションの一部。レッスン 49/71。
array を扱うときは、各要素を1つずつ確認する必要がよくあります。インデックスカウンターを使った for loop も使用できますが、PHP にはよりすっきりした解決策である foreach loop が用意されています。
PHPの foreach ループは、配列を順番に処理するために作られています。多くの言語にはこれに似たループがあり、PHPではカウントを自動的に処理し、各要素に直接アクセスできます。
<?php
$fruits = ["apple", "banana", "cherry"];
foreach ($fruits as $fruit) {
echo $fruit . "\n";
}
?>出力は次のとおりです:
apple
banana
cherry構文は簡単です:foreach ($array as $item)。各反復で、配列の次の要素が$itemに代入され、ループ本体内でそれを使用できます。
これを、forループで同じ結果を得る場合と比較してください:
<?php
$fruits = ["apple", "banana", "cherry"];
for ($i = 0; $i < count($fruits); $i++) {
echo $fruits[$i] . "\n";
}
?>foreach バージョンはより短く、読みやすくなっています。インデックス変数を管理したり、array の長さを気にしたりする必要はありません。PHP がすべて処理してくれます。
チャレンジ
簡単カンマ区切りの数値リストを含む1行の入力を読み取ります(例: 10,25,5,30,15)。
foreach ループを使用して配列を反復処理し、すべての数値の合計を計算します。合計値を出力します。
例1:
入力が 10,25,5,30,15 の場合、出力は次のようになります。
85例2:
入力が 1,2,3,4,5 の場合、出力は次のようになります。
15例3:
入力が 100,200,300 の場合、出力は次のようになります。
600自分で試してみよう
<?php
// 入力を読み取る
$input = trim(fgets(STDIN));
$numbers = explode(',', $input);
// TODO: foreachループを使って合計を計算するコードを下に書いてください
$sum = 0;
// 結果を出力する
echo $sum;
?>このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
基礎のすべてのレッスン
自分で練習してみよう: PHPオンラインコンパイラ