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で文字列と配列を自由に行き来するための大切な関数です。
まとめ
PHPにおける文字列操作は、初心者がつまずきやすいポイントのひとつですが、explodeとimplodeという二つの関数を理解することで、文字列と配列の変換がとても簡単に行えるようになります。この記事では、文字列を配列に分割するexplode関数と、配列を文字列に結合するimplode関数の基本的な使い方を中心に、さまざまな例と一緒に解説してきました。
explode関数は、区切り文字を指定することで文字列を配列に分割することができます。たとえばカンマやスペース、スラッシュなどを使って、テキストデータを細かく扱いたいときにとても役立ちます。一方でimplode関数は、その逆で、配列を一つの文字列にまとめるために使われます。たとえばフォームから送信された複数の値を保存したり、表示用のテキストに変換したりと、活用シーンが非常に多い関数です。
特に、explodeとimplodeは組み合わせて使うことが多く、一時的にデータを保存したり再表示したりする場面では欠かせません。保存時にimplodeで1つの文字列にして、再利用時にexplodeで配列に戻すことで、ユーザーの操作をスムーズに扱うことができます。
PHPで文字列と配列を変換するサンプル
たとえば、フォーム入力で複数の値を保存して再利用するには、以下のように書けます。
$selectedTags = ["PHP", "JavaScript", "CSS"];
$storedValue = implode("|", $selectedTags); // データベースに保存
echo $storedValue; // PHP|JavaScript|CSS
$restoredArray = explode("|", $storedValue); // 配列に戻す
print_r($restoredArray);
このように、文字列と配列を変換できると、PHPでのデータ操作がより柔軟に行えます。区切り文字を工夫することで、可読性や用途に応じた出力が可能です。
implodeとjoinの違い
implodeとjoinは機能的には同じで、どちらを使っても配列の結合が可能です。ただし、一般的にはimplodeの方が多く使われており、初心者のうちはimplodeで覚えるのがおすすめです。
区切り文字を自由に設定するコツ
explodeやimplodeでは、区切り文字を自由に設定できますが、保存や表示時の見やすさも考慮して、「,(カンマ)」「・(中点)」「|(パイプ)」などを用途に応じて選ぶとよいでしょう。特に複数の単語やタグ、キーワードを扱うときには、使いやすい区切り記号を決めておくと後々管理しやすくなります。
初心者におすすめの練習
- カンマ区切りの文字列をexplodeで配列にしてみる
- 配列をimplodeで「・」や「|」で連結して表示してみる
- explode→implodeの往復変換で同じデータが保てるか試す
- フォームから送信されたチェックボックスの配列を文字列に変換して保存してみる
explodeとimplodeを正しく使いこなすことで、PHPでの文字列操作や配列の扱いが大きく広がります。とくにユーザー入力やCSVデータなどを扱う場面では頻出のテクニックです。実際に手を動かして、いろいろな区切り文字やデータパターンで試してみることが、理解を深める近道になります。
生徒
「explodeとimplodeって、最初は名前が難しそうだけど、やってみるとけっこう簡単ですね!」
先生
「そうですね。文字列と配列の変換が自由にできると、データの加工や保存、表示にすごく便利になりますよ。」
生徒
「カンマとかスペースとか、区切り文字も好きに選べるのが助かります。」
先生
「フォーム入力の処理やCSVの読み込みでも大活躍しますから、実際の開発でもどんどん使っていきましょう。」
生徒
「はい、implodeとexplodeでいろいろ練習してみます!」