【On to PHP】for / foreach ってなに?

こんにちは、さるまりんです。

On to PHP、続きを進めていきます。

前回は、多次元配列を見ました。
配列の中に、さらに配列が入っている形でした。

今回は、
「for / foreach ってなに?」
です。

くり返し処理ってなに?

配列を扱っていると、こんなことをしたくなります。

  • 配列の中身を順番に見たい
  • 全部まとめて表示したい
  • 同じ処理を何度もしたい

上から順にひとつずつ手で書くのは大変ですよね。

そこで出てくるのが、
くり返し処理
です。

for 文ってなに?

for 文は、
「何回くり返すか」が決まっているとき
に使います。

例です。

for ($i = 0; $i < 3; $i++) {
    print $i;
}

このコードでは、

  • $i は 0 から始まり
  • 3 より小さい間
  • 1 ずつ増えながら

処理がくり返されます。

結果は、

012

となります。

予め何回繰り返すかわかっている時に、
「回数を数えながらくり返す」
と思っておけば大丈夫です。

foreach 文ってなに?

配列を扱うときに、
とてもよく使われるのが foreach です。

こちらは配列の中身を、
ひとつずつ順番に取り出す
ための書き方です。

$animals = ['さる', 'しか', 'いのしし'];

foreach ($animals as $animal) {
    print $animal;
}

これで、

さる
しか
いのしし

と前から順番に表示されます。

foreach は何がいいの?

foreach の良いところは、

  • 配列にいくつ要素が入っているのか気にしなくていい
  • インデックスを意識しなくていい
  • 読みやすい

ところです。

「配列の中身を順番に使いたい」
そんなときは、まず foreach を思い出すと良いです。

さっきの for は予め繰り返しの回数が決まっているときに使いました。
こちらはわかっていなくても使えるという点で異なります。

多次元配列と foreach

前回の多次元配列も、foreach で扱えます。

$animals = [
    'さる' => ['place' => '箕面山'],
    'しか' => ['place' => '若草山'],
];

foreach ($animals as $name => $info) {
    print $name . ' ' . $info['place'];
}

これで

さる 箕面山
しか 若草山

と順に表示されます。

少しずつですが、
Webアプリでよく見る形
に近づいてきましたね。

for と foreach、どう使い分ける?

簡単にまとめると、

  • 回数が決まっている → for
  • 配列を順番に処理したい → foreach

最初は、
配列には foreach
と覚えておいても大丈夫です。
(それくらい foreach と配列は相性がいいです)

少しずつ、道具が増えてきました

配列を作って、
くり返して処理できるようになると、
できることが一気に増えます。

次は、
条件によって処理を変える方法
を見ていたいと思います。

読んでくださってありがとうございました。

それでは、また!