PHPに限らず、プログラミング言語にはfor
分やwhile
文ループ処理をさせることが出来ます。
ですが、PHPにはforeach
文を使うことができ、配列に対してはforeach
文を使うことでループ処理をしやすくなります。
この記事ではPHPでforeach
文の使い方について解説していきます。
foreachとは
foreach
とは、配列をループさせるのに便利な方法で、配列の要素の数だけループを繰り返してくれます。
単純な配列だけでなく、連想配列もforeach
文でループをさせることが出来ます。
PHPで作られているWordPressでもこのforeach
文を使う機会はかなり多いので、ちゃんと使いこなせるようになりましょう。
for文で配列をループさせる
foreach
文との比較をするために、まずはfor
文で配列をループさせてみましょう。for
文の構文は下記の通りです。
<?php
for(初期値; 繰り返し条件; 増減) {
// 繰り返したい処理
}
for
文では、「初期値」「繰り返し条件」「増減」を指定する必要があります。
今回は配列を用意して、その配列を順番に繰り返し表示させるだけの簡単なループ処理を実装していきましょう。
<?php
$arr = ["windows", "macOS", "Linux", "Android", "iOS"];
for($i = 0; $i < 5; $i++) {
echo $arr[$i] . "<br>";
}
$arr
という配列を用意して、for
文で順番に$arr
の値をecho
で出力しています。$i
は0
から5
未満つまり4
まで(0~4
)を繰り返すように初期値、繰り返し条件、増減を指定しています。$i
をインデックス番号とすることで$arr[$i]
で配列の値を取り出すことができます。
繰り返し条件では配列の数である5を指定していますが、count
関数を使うことでも表現することができます。
<?php
$arr = ["windows", "macOS", "Linux", "Android", "iOS"];
for($i = 0; $i < count($arr); $i++) {
echo $arr[$i] . "<br>";
}
count
関数は引数に配列を指定することで、配列の要素数を取得することが出来ます。
こうすることで配列の要素数が変わっても、対応することができます。
for
文でも配列をループさせることはできますが、初期値や条件を指定する必要があります。
また、連想配列の場合はfor
文でどのようにループさせれば良いでしょう?
そういった時に使えるのが、foreach
文です。
foreach文で配列をループさせる
それでは、本題であるforeach
文で配列をループさせていきましょう。
配列
foreach
文で配列を扱う際の構文は下記の通りです。
foreach(配列 as 値) {
// 繰り返し処理
}
foreach
文の()
の中で繰り返し処理を行いたい配列を指定して、as
の後に指定した変数に配列の中身の値が順番に渡すことが出来ます。
for
文で行った処理を今度はforeach
文を使って、実装してみましょう。
<?php
$arr = ["windows", "macOS", "Linux", "Android", "iOS"];
foreach($arr as $value) {
echo $value . "<br>";
}
foreach
文を使うことで初期値や繰り返し条件を指定する必要がなく、for
文を使った時よりもコードがかなりスッキリしましたね。
連想配列
最後に連想配列に対して、foreach
文を使用してループ処理を行ってみましょう。foreach
文で連想配列を扱う際の構文は下記の通りです。
foreach(配列 as キー => 値) {
// 繰り返し処理
}
as
の値の後でキー => 値
という形式で指定することで、配列のキーと値を順番に渡すことが出来るようになります。
<?php
$arr = [
'PHP' => 'Laravel',
'Ruby' => 'Ruby on Rails',
'JavaScript' => 'Vue.js',
];
foreach($arr as $key => $value) {
echo $key . "のFWは" . $value . "です。<br>";
}
$key
には$arr
のキーが、$value
には$arr
の値が渡されて、順番に全ての要素を取得できました。
連想配列で繰り返し処理が行えているのが、確認できます。
まとめ
PHPで配列を繰り返し処理をする際には、for
文やwhile
文を使うことより、foreach
を使う場面の多いでしょう。
ぜひ、使いこなせるようになっておきましょう。