PHP標準関数

CSV形式を配列に展開[explode]


例1 explode1.php
$str= "山,川,海,島,世界征服";

print_r(explode(",",$str));
Array ( [0] => 山 [1] => 川 [2] => 海 [3] => 島 [4] => 世界征服 )
 explodeは、ひとつで複数の値を持つ変数を配列に展開する事ができる関数です。 これも、PHPを覚えたら最初に使って欲しい関数のひとつです。 機能自体はとてもシンプルで、第一パラメータで指定した文字を区切り文字として第二パラメータで指定した文字列を 配列に展開します。例1ではCSV形式の文字列を配列に展開しています。展開されると0を起点とした連番が割り振られて 配列が作成されます。
 
例2 explode2.php
$str= "神奈川県,大分県,ニューヨーク,ハワイ|鳥,肉,ナス,そば|新幹線,飛行機,ゴムボート";

$out1=(explode("|",$str));
foreach($out1 as $i){
$out2[]=(explode(",",$i));
}

print_r($out2);
Array ( [0] => Array ( [0] => 神奈川県 [1] => 大分県 [2] => ニューヨーク [3] => ハワイ )
[1] => Array ( [0] => 鳥 [1] => 肉 [2] => ナス [3] => そば )
[2] => Array ( [0] => 新幹線 [1] => 飛行機 [2] => ゴムボート ) )
 区切り文字には、「,」以外にもいろいろと指定できるため、explodeを複数回繰り返すことで、 ひとつの変数で多次元配列へ展開することも可能となります。例2では、一つ目の区切り文字を「 | 」として、 展開し、その展開されたそれぞれの文字列を二つ目の区切り文字「 , 」で展開しています。
 
例3 explode3.php
$str= "sakura=>馬,botan=>猪,momiji=>鹿";

$out1=(explode(",",$str));
foreach($out1 as $i){
$work=(explode("=>",$i));
$out2[$work[0]]=$work[1];
}

print_r($out2);
Array ( [sakura] => 馬 [botan] => 猪 [momiji] => 鹿 )
この方法を応用して例3の様に、2つの文字を一組として「 => 」で繋ぎ、更にその組み合わせを複数用意して「 , 」で区切った文字列を用意すれば、 2回目の展開でできた配列の0番目をキーとして、1番目を値とした連想配列に展開することも可能です。
 また、データをクッキーやファイル、キーとして使用する必要のないデータベース項目(ただし、LIKEによる部分参照キーとしては有効)などにも利用可能で、  使い方によってはとても見通しのよいデータ設計が可能になります。
 
(2006年08月06日)

アンケートにお答えください。

1.この記事は役に立ちましたか?





2.この記事に対するコメント、ご希望などありましたらお願いします。

3.よろしければ送信ボタンを押してください。


標準関数TOPへ戻る