array関数を使わずに配列を作る

2008.03.06.木
PHP技術

PHPでシステム開発をしていると、配列を使う機会というのは非常に多くあります。配列なしにシステムを作れないといっても過言ではありません。そんな配列ですが、PHPには便利な関数があるのでご紹介したいと思います。

まず、ごく一般的な方法で、普通に配列を生成しようと思うと、

$month  = array(”January”, ”February”, ”March”);


とarray関数に値を渡します。連想配列にしたいときも一緒ですね。
$fruits = array(”a” => ”orange”, ”b” => ”banana”, ”c” => ”apple”);


この書き方だと、数が多くなってきたときに、見にくくなってしまいます。そこで今回ご紹介するexplode関数の登場です。これを使うと、最初の例は、以下のように記述できます。
$month  = explode(”,”, ”January,February,March”);


explode関数は、第一引数を区切り文字、第二引数を入力文字列として入力文字列を区切り文字で分解して配列を返します。えっ、便利さがわからない?では、もっと増やしてみましょう。
$month  = array(”January”, ”February”, ”March”, ”April”, ”May”, ”June”, ”July”, ”August”, ”September”, ”October”, ”November”, ”December”);

$month  = explode(” ”, ”January February March April May June July August September October November December”);


スマートになったでしょ?
連想配列を作成したい場合は、キーだけの配列と値だけの配列をそれぞれ作成して、くっつけます。
$fruits_key = explode(” ”, ”a b c”);
$fruits_val = explode(” ”, ”orange banana apple”);
$fruits = array_combine($fruits_key, $fruits_val);


array_combine関数はPHP5以上

ちなみにexplode関数と逆の処理を行うimplode関数もあります。それでは快適な配列ライフをお過ごしください。