配列

変数は、基本的に1つの値しか代入することができません。しかし、プログラムを開発していく中で、複数の値を持った変数が必要になってきます。
他の言語でも見られるように、PHPでも1つの変数に複数の値を持たせることができます。それを「配列」と呼びます。
配列 array
JavaScriptPerl言語などで見られる配列と同じように、PHPでも配列を設定することができます。例えば最も簡単な配列方法は、
 <?php
   $banban[] = "HTML";
   $banban[] = "XHTML";
   $banban[] = "XML";
  ?>
このように [ ]を使って設定すれば、$banban[0] には、「HTML」という文字列が代入され、$banban[1] では、「XHTML」が代入されます。
こうした配列の仕方もあるのですが、配列すべき値が多くなると記述するのも大変です。(配列のインデックスの先頭は常に 「0」 になります。)
array()関数
複数の値(インデックス)を1つの変数に格納する場合、array()関数を使うことで、簡単に配列を設定することができます。
 <?php
   $banban = array("HTML", "XHTML", "XML", "XSLT", "RSS");
 ?>
こうすることで、任意の値を取ることができます。例えば、「XHTML」という値が欲しいときには、$banban[1] とすればいいのです。
 <?php
   $banban = array("HTML", "XHTML", "XML", "XSLT", "RSS");
    print($banban[1]);
 ?>
スクリプトの実行結果は以下のとおりです。 配列の値から1つ取り出して表示させたMozillaブラウザの画像
配列の中から1つだけ値を取り出して表示させています。
配列にはいくつでもどのような型でも取り込むことができ、スクリプトを簡素化します。配列された値は、必要なときに必要な分を取り出して、計算や他のスクリプトに応用することが可能です。
explode()関数
インデックスの区切り文字を基準として配列するのが、explode()関数です。これは、インデックスの文字列の各項目として変数に格納されます。
 <?php
   $banban = explode(",", "HTML,XHTML,XML,XSLT,RSS");
    print($banban[3]);
 ?>
サンプルコードを見てお分かりのとおり、インデックスの文字列がカンマで区切られており、その区切り文字を先頭で指定しています。そうすることによって、1つの文字列内で、インデックスをいくつでも設定することができます。
スクリプトの実行結果は以下のとおりです。 expode()関数の配列の値から1つ取り出して表示させたMozillaブラウザの画像
expode()関数で指定された値の4番目のインデックスを取り出して表示させているサンプルです。
一般的には、array()関数を使うことが多いのですが、expode()関数も便利に使えます。なお、区切り文字は任意に指定することが可能です。
連想配列
ここまで文字列を中心として配列について説明してきました。インデックスが文字列の配列の場合を 「連想配列」と呼びます。もちろん、配列には数値でも可能です。
連想配列では、インデックスに文字列を割り当てているために、ループを利用する場合、普通の配列のように添え字を使ってその値を参照することができません。そのため、list() と、each()関数を使えば、同じように機能することができます。
<?php
  $fruit = array("Apple" => "りんご", "Orange" => "みかん", 
                 "Grape" => "ぶどう");
    while(list ($key, $val) = each($fruit)) {
      print ("インデックスの $key は、$val です<br>\n");
     }
?>
このスクリプトでは、each()関数を使って、連想配列$fruit の値をサブ配列で返しています。list()関数で、変数$key$valに出力する値を割り当てています。ここでのキーは =>を使っています。
スクリプトの実行結果 → 連想配列のループのサンプル


This Page is HTML4.01 Valid! 最新更新日 2004年1月12日   最新更新日 2004年4月1日
Copyright(C) 2002〜2004 banban@scollabo.com