こんにちはWebエンジニアのtakaです。
今回は配列をループする時に利用するforeachで、ループが今何回目なのかを取得する方法を記載します。
foreachの使い方
配列があります。
$items = ['リンゴ', 'バナナ', 'みかん'];
foreachでループすると、1ループ目は’リンゴ’が、2ループ目は’バナナ’が、3ループ目は’みかん’が取得できます。
foreach($items as $item) {
echo $item . '\n'; // itemを出力
};
// 出力結果
リンゴ // 1ループ目
バナナ // 2ループ目
みかん // 3ループ目
forを利用するとループさせる回数をこちらで3回と指定しないといけないですが、foreachだと配列に入っている回数だけループしてくれるので、配列に何個要素があるかその場その場で変わってしまうような時はforeachを利用します。
ループ回数の数え方
foreachを理由する際に$indexを利用します。
$items = ['リンゴ', 'バナナ', 'みかん'];
foreach ( $items as $index => $item ) {
echo $index. ":". $item. "\n";
}
// 出力結果
0:リンゴ
1:バナナ
2:みかん
解説
foreach ( $itmes as $index => $item )
$itemsはループさせたい配列を入れます。
$indexはループ回数(インデックス番号)です。変数名は$nでも何でもいいですが、$indexがわかりやすいのでいいでしょう。
$itemは配列の各要素です。変数名は何でも良いです。ループさせたい変数名が$booksならこれは$book、ループさせたい変数名がpostsならこれは$postとループさせたい変数名の単数形とするのが一般的です。
1ループ目は「0」番目から始まることに注意!
以下のように書いても動きますが、プロ意識を持ってforeach関数をうまく利用している上の例で書きましょう。
$items = ['リンゴ', 'バナナ', 'みかん'];
$counter = 0; // ループ回数カウンター
foreach($items as $item) {
// ここで処理を行う
echo $counter; // ループ回数を出力
$counter++; // カウントループ回数カウンターを増加
};