PHPのexplodeとimplodeの使い方を完全解説!初心者でもわかる文字列と配列の変換方法
生徒
「PHPで文字列をバラバラに分けたり、逆にくっつけたりってできますか?」
先生
「できますよ!explode関数で文字列を分割して配列に、implode関数で配列を文字列に戻すことができます。」
生徒
「それってどんなときに使うんですか?難しそう…」
先生
「メールアドレスの一覧や、カンマ区切りのデータを扱いたいときにとても便利です。やさしく解説するので一緒に見ていきましょう!」
1. explode関数とは?文字列を分割して配列にする方法
explode(エクスプロード)関数は、文字列を区切り文字で分割して配列にするPHPの関数です。
例えば「りんご,みかん,バナナ」という文字列を,(カンマ)で区切って、果物の一覧にできます。
$text = "りんご,みかん,バナナ";
$array = explode(",", $text);
print_r($array);
実行結果:
Array
(
[0] => りんご
[1] => みかん
[2] => バナナ
)
このように、文字列を区切って配列に変換できます。フォームで入力されたカンマ区切りの値などを扱うときに便利です。
2. implode関数とは?配列を文字列にくっつける方法
次に、配列をimplode(インプロード)関数を使って文字列に変換する方法を見てみましょう。
例えば、複数の単語を1つの文章にしたいときに使えます。
$array = ["りんご", "みかん", "バナナ"];
$text = implode("、", $array);
echo $text;
実行結果:
りんご、みかん、バナナ
このように、配列の要素を「、」や「-」など好きな文字でつなげて1つの文字列にできます。
3. explodeとimplodeはセットで使うと便利
explodeとimplodeは、セットで使うことが多いPHPの文字列処理関数です。
たとえば、データを一時的に保存するときは文字列にして、あとで配列に戻すという使い方ができます。
$text = "PHP,JavaScript,Python";
$langArray = explode(",", $text);
$newText = implode(" / ", $langArray);
echo $newText;
実行結果:
PHP / JavaScript / Python
このように、文字列→配列→文字列と自由に変換できます。
4. 区切り文字は自由に設定できる
explodeやimplodeでは、区切り文字(セパレーター)を自由に設定できます。
よく使われるのは以下のような文字です。
,(カンマ)|(パイプ)スペース/(スラッシュ)
例えば、半角スペースで区切る場合:
$text = "HTML CSS JavaScript";
$words = explode(" ", $text);
print_r($words);
5. implodeはjoinと同じ意味
implodeは、joinという別名でも使えます。どちらを使っても結果は同じです。
$fruits = ["いちご", "もも", "ぶどう"];
echo join("・", $fruits);
出力:
いちご・もも・ぶどう
joinは英語で「つなげる」という意味があり、配列の要素を1つにまとめるという点ではimplodeとまったく同じ働きをします。
6. フォームの入力データにも使える
たとえばチェックボックスなどで複数選択された項目をimplodeで1つの文字列にまとめて保存することができます。
逆に、保存された文字列をexplodeで配列に戻せば、編集画面で選択状態を再現できます。
// フォームから受け取った配列
$hobbies = ["映画", "音楽", "読書"];
// カンマでつなげて保存
$saveText = implode(",", $hobbies);
// 保存した文字列を取り出して配列に戻す
$restoreArray = explode(",", $saveText);
このように、explodeとimplodeは、PHPで文字列と配列を自由に行き来するための大切な関数です。