はじめに
配列処理というのは文字通り[ ]で囲まれた中の物を処理するものですよね。
そんな配列処理は大きく3つあります。
①for文
②foreach文
③while文
以上3つです。
ではこの3つをどう使い分けたら良いのでしょうか?
for文
for文は「繰り返し回数が定まっているとき」
に強いです。
例えば1年間365日を数字で打ち出したいとすると
for ($i=1; $i<=365; $i++) {
print($i);
}
↓ちなみにwhileで書くと
$i=1;
while ($i <= 365) {
print($i)
$i++;
}
forの方がすごくスッキリかけますね。
逆に言えばfor文は回数が一定に決まらない処理が苦手というわけです。
foreach文
foreach文は「連想配列の処理」
に強いです。
フォームからPOSTされてくる時とかに嫌というほど目にしますね。
$fruits = [
'apple' => 'リンゴ',
'grape' => 'ブドウ',
'lemon' => 'レモン',
'tomato' => 'トマト',
'peach' => 'モモ',
];
foreach ($fruits as $english => $japanese) {
pront ($english.':'.$japanese);
}
中身をそれぞれ打ち出せます。
DBと組み合わせることで変数内に入ってきた物を打ち出せるので回数が決まっていないものにも対応ができるのです。
while文
while文は「指定の条件を満たすまでのループ処理」
が得意です。
$cnt = 1;
$i=0;
while($i !== 10) {
echo $cnt . "回目のループ";
if($cnt%2 === 0) $i++;
$cnt++;
}
while文は
条件を満たすまで実行し続けるので、無限ループ事故を引き起こしやすいのが難点です。
まとめ
どれが良いとかではないので場面で使い分けるべきでしょう!
使っているコードを見かけたらなぜこれを使っているんだろうと考えることにします。