foreach文の書き方と特徴(他のループ処理との違い)

配列を扱う繰り返し処理

結構使えるコードで、特に大量にある情報を取り出す際に用いるのに必ずと言っていいほど出てくる構文。

基本的な考え方は、

配列のすべての値に対して同じ処理をしたい

 

==配列のおさらい==

●1つは、値のみが格納されている配列

例) $names = ['鈴木', '中村','佐藤', '山田', '田中'];

 

●もう1つは、値に対して、「キー(プログラム上のその値に対するラベル)」がある、「キー」と値がセット(対)になって格納されている連想配列

例) $names = [

   '1位' => '鈴木',

   '2位' => '中村',

   '3位' => '佐藤',

   '4位' => '山田',

   '5位' => '田中',

];

書き方

配列の場合

foreach($配列変数 as $value){

  //処理内容

}

 ※注意:「;」で閉じなくてOK。

for文やwhile文と異なり、配列のすべての値に対しての処理なので、

自動的に配列の個数が条件式になるので()内は配列の記述だけでOK。

 

$valueは、配列の値の変数で、foreach文でループ処理するうえで、

その場で初めて出てくる変数なので、変数名はなんでもOK

※わかりやすいように$valueであることも多いが、

配列名が複数形の場合、その配列の値のため、単数形で宣言することも一般的!!

例)foreach($配列変数 as $name)

 

 (サンプル)

表示したい結果

私の名前は、鈴木です。

私の名前は、中村です。

私の名前は、佐藤です。

私の名前は、山田です。

私の名前は、田中です。

 

(コード)

foreach($names as $name){
echo '私の名前は、'. $name . 'です。' ."<br>";
}

 

 

連想配列の場合

foreach($配列変数 as $key => $value){

  //処理内容

}

 

連想配列は、値に対して「キー」がついている。

なので連想配列の書き方のように「キー」を変数で表現する。

こちらも便宜上はじめて設置する変数のため、わかりやすい変数名でOK

※keyが多い。

 

 

 (サンプル)

表示したい結果

鈴木さんは、1位です。

中村さんは、2位です。

佐藤さんは、3位です。

山田さんは、4位です。

田中さんは、5位です。

 

 

(コード)

foreach($names as $key => $name){
echo $name .'さんは、'. $key . 'です。' ."<br>";
}

もしも、「キー」の情報を処理で使用せず、値だけしか扱わない場合は

$keyは省略可能。

 

===========

 参照記事(ありがとうございました!!)

www.sejuku.net

 ===========