HOME   入り口   MENU


No21.文字を区切りに分解!分解 ---- explode関数




ある文字の場所でその文字列をチョキチョキと分解したいときってあります。
例えば日付だったら
/ハイフン(-)で区切られたりしてますよね?
今日だったら2017/08/18とか2017-08-18見たいな感じ。
それからカンマ区切りのcsvファイルのレコードのカンマ(,)とか。
その区切りの文字で切り取ってそれ以外の値が取りたい場合
explode関数も便利です。

配列変数=explode(ココに指定した文字で分解,文字列,[分解する回数]);


日付を分解してみましょう(^_^)
<?php
$ardata=explode("/","2017/08/18");
echo $ardata[0] ."<BR>";
echo $ardata[1] ."<BR>";
echo $ardata[2] ."<BR>";
?>

実行すると$ardataのそれぞれの値は

2017
08
18


/で分解されて配列($ardata)に入ってることが分かります。

戻り値は配列になっているので、もちろんlistも使えます。
<?php
list($year,$month,$day)=explode("-","2017-08-18");
echo $year ."<BR>";
echo $month ."<BR>";
echo $day ."<BR>";
?>

実行すると$ardataのそれぞれの値は

2017
08
18


ハイフン(-)で分解してみました(^_^)

カンマ(,)でもやっぱり同じです。
<?php
$ardata=explode(",","あ,い,う,え,お,か,き,く,け,こ,さ,し,す,せ,そ");
foreach($ardata as $value){     echo $value ."<BR>";
}
?>
















配列の数が分からなかったのでforeachを使って表示しています。

その文字列に含まれる区切り文字で全部を分解してみたけれど
先頭から特定の回数だけ分解したいときだってあります。
例えば上の例で頭から3個分のカンマで区切りたい場合
<?php
$ardata=explode(",","あ,い,う,え,お,か,き,く,け,こ,さ,し,す,せ,そ",3);
foreach($ardata as $value){     echo $value ."<BR>";
}
?>



う,え,お,か,き,く,け,こ,さ,し,す,せ,そ

となり、最後の配列に文字列の残りすべてが入ります(^_^)。



サンプル: こう書くと   ==>    こうなる!




(オマケ)
explodeの逆はimplodeです。
特定の文字を間に挟んで文字列をくっつけます。
<?php
$ardata=array("あ","い","う","え","お");
echo implode("#",$ardata);
?>

実行結果は
あ#い#う#え#お
となります。











  HOME