Home > PHP > PHP - foreach -

PHP - foreach -

  • 2012-04-13 (Fri) 09:25
  • PHP
ミサイルが飛んでくるとか・・今日か?いつか・・。お騒がせです。
国際的に問題なのはもちろん、道義的に幼稚な思想は限界だろう・・。

久々に邦画「必死剣鳥刺し」という映画を見ました。一国の殿が、妾の女性の思うままになってしまい、その下で働く侍たちが苦悩を強いて仕舞う。
それを思って、妾を殺害した武士の話でした。見ていて、そんなに難しい内容ではなく、昔の武士やそれを取り巻く人たちの心情、振る舞い(しきたりや礼儀)がとても新鮮に思えました。
結末は言えませんが、必死剣という意味が最後に分かります。少しおススメです。

今回は、foreach文を紹介します。
第12回 foreach
このforeachは、配列を反復処理させるものです。for文は配列を処理することができないので、配列の内容を繰り返して処理する時にforeach文を使います。

配列を少し説明します。
変数は、一つの箱と仮定できます。例えば、$a="ONE"とすると、文字列「ONE」を変数aに代入します。つまり、文字列をaという箱の中に格納(保管)するということですが、複数の値を変数の中に格納することはできません。

もう少し噛み砕いた説明をすると、20名のクラスA(例:1年1組に20名)がいたとします。変数$classAに、20名の名前を保管したい場合に配列を使うことになります。
では、どうするかというと変数$classAに仕切りをすることになります。
タンスを例にすると分かり易いです。タンスは一つの箱と見なすことができます。上着を入れる引き出し、下着を入れる引き出し、タオルを入れる引出というように、引き出し(仕切り)があれば1つの箱の中に複数のものを入れることができます。
簡単に考えると、複数の値を一つの箱に入れる時はタンスを使う、つまり配列を使うと覚えると良いでしょうね。

どのように入れるかというと次のようになります。
$a = array(1,2,3);


foreachから脱線しましたが、foreach文は配列の値を反復処理する時に使う構文だという事になります。
では、サンプルコードを見てください。
<php
 $a = array(1,2,3,4,5);
 foreach($a as $value){
  echo $value."<br>";
 }
unset($value);
?>

結果は、1から5までを表示します。これは、for(i=1;i<=5;i++)で変数iを出力させるものと同じ処理となります。
foreachの書式は以下のようになります。
 foreach(配列変数名,インデックス,値){
  処理文
 }


また、以下のような使い方も良く行います。
<php
 $a = array(A,B,C,D,E);
 foreach($a as $key=>$value){
  echo "key$key"." の値は$value<br>\n";
 }
?>

上の形式は、各反復で現在の要素のキー(インデックス)を変数$keyに代入するという書き方です。
20120413-p01.jpg
一般には配列を定義する記述として次のようにする場合があります。
$a = array(
 "1"=>"A",
 "2"=>"B",
 "3"=>"C"
);

意味は、インデックス(キー)の「1」には「A」を格納、「2」には「B」を格納・・ということです。
$key=>$valueというのは、インデックス(キー)は変数$key、値は変数$valueを使用するということです。

配列とforeachも、けっこう使用する機会が多いですので、しっかりと覚えておきます。
  
Comment Form
★下記に2つの英単語をスペースで区切って入力してください

Home > PHP > PHP - foreach -

Search
Feeds

Page Top