PHPのexplodeとimplodeの使い方を完全解説!初心者でもわかる文字列と配列の変換方法
生徒
「PHPで文字列をバラバラに分けたり、逆にくっつけたりってできますか?」
先生
「できますよ!explode関数で文字列を分割して配列に、implode関数で配列を文字列に戻すことができます。」
生徒
「それってどんなときに使うんですか?難しそう…」
先生
「メールアドレスの一覧や、カンマ区切りのデータを扱いたいときにとても便利です。やさしく解説するので一緒に見ていきましょう!」
1. explode関数とは?文字列を分割して配列にする方法
PHPのexplode(エクスプロード)関数は、特定の「区切り文字」を境目にして、1つの長い文字列をバラバラに分解し、配列(リスト形式)に変換する関数です。
プログラミング未経験の方でもイメージしやすい例として、「買い物リスト」を考えてみましょう。例えば、メモ帳に「りんご・みかん・バナナ」と1行で書かれたデータを、プログラムで扱いやすいように1つずつの項目に分けたいときにこの関数が活躍します。
基本的な使い方とサンプルコード
以下の例では、中点(・)を区切り文字として指定して、果物の名前を分割しています。
// 分割したい元の文字列
$data = "りんご・みかん・バナナ";
// explode(区切り文字, 元の文字列) の順で書く
$fruits = explode("・", $data);
// 配列の中身を確認
print_r($fruits);
実行結果:
Array
(
[0] => りんご
[1] => みかん
[2] => バナナ
)
このように、explodeを使うと「0番目はりんご」「1番目はみかん」といった具合に、データが整理された状態になります。これは、ユーザーが入力したキーワード検索(スペース区切り)や、CSVファイルのようなカンマ区切りのデータを1つずつ取り出して処理したいときに非常に役立つテクニックです。
2. implode関数とは?配列を文字列にくっつける方法
次に、explodeとは逆の動きをするimplode(インプロード)関数について解説します。これは、バラバラになっている配列の要素を、指定した文字で「つなぎ合わせて1つの文字列にする」ための関数です。
例えば、アンケートの回答で「好きなスポーツ」を複数選んでもらった場合、データは配列として受け取ります。しかし、その結果をメールで送信したり、画面に「野球、サッカー、テニス」のように1行で表示したいときは、このimplodeが非常に役立ちます。パズルのピースを糊(のり)でくっつけて、1枚の絵にするようなイメージですね。
基本的な使い方とサンプルコード
以下の例では、配列に入った果物の名前を、読点(、)でつなげて1つの文章に変換しています。
// つなげたいデータが入った配列
$array = ["りんご", "みかん", "バナナ"];
// implode(つなぎたい文字, 元の配列) の順で書く
$text = implode("、", $array);
// 結果を表示
echo $text;
実行結果:
りんご、みかん、バナナ
このように、配列の各要素の「間」だけに指定した文字が入るのが特徴です。そのため、最後尾に余計なカンマがつかないという、プログラミングにおいて非常に便利なメリットがあります。初心者の方が自分で行おうとすると、最後の文字の処理に苦労することが多いため、この関数をマスターするだけでコードが劇的にスッキリします。
""(空文字)にすると、文字を何も挟まずにすべての要素をピッタリと連結させることも可能です。
3. 実践テクニック:explodeとimplodeをセットで使うと便利な理由
PHPの開発現場では、explode(分割)とimplode(結合)をセットで使う場面が非常によくあります。一見遠回りに見えますが、「一度バラバラにして、必要な処理をしてから、また綺麗に整えて戻す」という流れは、プログラミングにおけるデータ加工の基本です。
例えば、趣味をカンマ(,)で区切ってメモしたデータがあるとします。この区切り文字を、後から「見やすいようにスラッシュ( / )に変えたい」と思った時、この2つの関数を組み合わせるだけで一瞬で変換が可能です。
// 1. 元のデータ(カンマ区切り)
$hobbyText = "映画,旅行,読書";
// 2. explodeで一度バラバラにして配列に格納する
$hobbyArray = explode(",", $hobbyText);
// 3. implodeで別の区切り文字を使って結合し直す
$displayStyle = implode(" / ", $hobbyArray);
// 結果を表示
echo $displayStyle;
実行結果:
映画 / 旅行 / 読書
このように、「文字列 → 配列 → 別の形の文字列」と自由自在に変換できるようになると、データの見た目を柔軟に変更できるようになります。これはWebサイトのプロフィール表示や、ユーザーが入力した情報の整理など、あらゆる場面で応用される重要なテクニックです。
4. 区切り文字(セパレーター)は自由に設定できる
explodeやimplodeの最大のメリットは、「どんな文字でも区切り役(セパレーター)に指定できる」という柔軟さにあります。データの形式に合わせて最適な文字を選ぶことで、複雑な情報も驚くほど簡単に整理できます。
Web制作やデータ管理の現場でよく使われる区切り文字には、以下のようなものがあります。
,(カンマ):CSVデータや、タグの保存によく使われます。|(縦棒/パイプ):複数の設定値を1行で管理する際に見やすい記号です。(半角スペース):単語検索や、タグクラウドの入力などで定番です。/(スラッシュ):日付データ(2026/02/09など)の分解に便利です。
実践例:スペースで区切られたスキル一覧を分割する
例えば、エンジニアが自分のスキルを「HTML CSS JavaScript」のようにスペース区切りで入力したとしましょう。これを1つずつの要素として取り出すコードは以下の通りです。
// スペースで区切られた文字列
$skillText = "HTML CSS JavaScript";
// 第1引数に " " (半角スペース)を指定して分割
$skillArray = explode(" ", $skillText);
// 配列として取り出せるので、1つずつ処理が可能になる
echo "習得スキル一覧:";
print_r($skillArray);
このように、区切り文字を正しく指定するだけで、1つの塊だったデータが「意味のある単位」に生まれ変わります。もし文字列の中に指定した区切り文字が複数含まれていても、explodeはそれらすべてを見つけ出し、自動的にすべての場所でカットしてくれます。未経験の方でも、この「何を境目にするか」というルールさえ決めれば、自由自在にデータを操ることができるようになります。
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でいろいろ練習してみます!」