【PHP】配列内に要素があるだけ繰り返し処理をする方法「foreach()」
今回は配列の要素がある分だけ繰り返し処理をする、「foreach()」をメモしていきます。
繰り返し処理をする関数は他に「while()」や「for()」があり、これらは繰り返し処理の回数を指定することが多いのですが、「foreach()」は要素全てに処理をしたいときに便利な関数です。
早速見ていきましょうφ(・_・”)メモメモ
「foreach()」で繰り返し処理を実行する
まずはもっとも基本的な使い方、「配列内の全ての要素をechoで出力する」という繰り返し処理をサンプルコードで見てみます。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
<?php /*foreach("要素を取り出したい配列" as "代入する変数"){ 繰り返す処理 }*/ $word = array("こ","ん","に","ち","わ"); foreach($word as $value){ echo $value; } //実行結果 こんにちわ ?> |
このような結果になりました。「$word」という変数内には5個の要素があるため、「要素を出力せよ!」という処理が5回繰り返された結果、「こんにちわ」という文字が出力されました。
「foreach()」で最初に慣れたい箇所としては、「foreach(“処理をしたい配列” as “代入したい変数”){ }」のところの”代入したい変数”のところです。今回は一般的に使用されている「$value」という変数名のものを使用しましたが、この変数名は何でもいいです。「$test」だろうとなんでも構いません。ここで指定した変数に、配列内の要素が入り、その次に記述することになる {”繰り返す処理”}で、指定した変数(サンプルコードでは$value)を使用することになりますので、この仕組みは忘れないようにしましょう。
インデックス番号を使用して繰り返し処理を実行する
実はこの「foreach()」はインデックス番号を使用して繰り返し処理をすることが可能です。早速サンプルを見てみましょう。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
<?php /*foreach("要素を取り出したい配列" as "インデックス番号(キー)" => "代入する変数"){ 繰り返す処理 }*/ $word = array("こ","ん","に","ち","わ"); foreach($word as $key => $value){ echo $key; } //実行結果 01234 ?> |
先程とは配列内の要素は一緒なのに、「こんにちわ」ではなく「01234」が出力されましたね?
これは配列に格納されている、要素のインデックス番号(キー)を出力しています。繰り返し処理をする前の
「foreach(“要素を取り出したい配列” as “インデックス番号(キー)” => “代入する変数”)」
といういう変数に代入するところをこのように記述することで、インデックス番号やキーを使用して繰り返し処理を行うことができます。
この機能が最も活躍するのが「連想配列」での処理でしょうね。具体的な使い方を見てみましょう。
連想配列で使用する例
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
<?php /*foreach("要素を取り出したい配列" as "インデックス番号(キー)" => "代入する変数"){ 繰り返す処理 }*/ $word = array("田中" => "170","佐藤" => "165","鈴木" => "180","本田" => "175"); foreach($word as $key => $value){ echo $key."さんの身長は".$value."cmです\n"; //実行結果 田中さんの身長は170cmです 佐藤さんの身長は165cmです 鈴木さんの身長は180cmです 本田さんの身長は175cmです } |
終わりに
「foreach()」は他の繰り返し処理に比べ、要素全てに実行したい場合やインデックス番号(キー)使用した連想配列の処理に非常に便利です。是非とも使いこなして繰り返し処理をものにしましょう。