PHPのexplodeとimplodeの使い方をやさしく解説!文字列と配列の変換テクニック
生徒
「PHPで文字列を分割して配列にしたいんですけど、どうすればいいんですか?」
先生
「PHPでは、explode関数を使うと、文字列を区切って配列に変換できますよ。」
生徒
「逆に、配列から文字列に戻すこともできますか?」
先生
「はい、implodeという関数を使えば、配列を文字列に結合できます。それでは基本から見ていきましょう!」
1. explode関数とは?文字列を配列に分割する方法
PHPのexplode(エクスプロード)関数は、文字列を「区切り文字」で分割し、配列にしてくれる便利な関数です。たとえば、カンマ(,)で区切られた文字列を分割して、名前を1つずつ取り出すことができます。
実際のコードを見てみましょう。
$str = "りんご,みかん,バナナ";
$array = explode(",", $str);
print_r($array);
Array
(
[0] => りんご
[1] => みかん
[2] => バナナ
)
このように、文字列が配列に変換されます。区切り文字には、カンマだけでなく、スペースや記号なども使えます。
2. implode関数とは?配列を文字列に結合する方法
今度は逆に、配列を1つの文字列にしたい場合は、implode(インプロード)関数を使います。複数のデータを、カンマなどでつなげたいときに便利です。
$array = ["東京", "大阪", "名古屋"];
$str = implode("・", $array);
echo $str;
東京・大阪・名古屋
このように、配列の各要素が「・」でつながれた1つの文字列になります。
3. explodeとimplodeの使い分けを図で理解しよう
ここで、図を使って関係を整理してみましょう。
文字列 → 配列:explode
配列 → 文字列:implode
イメージとしては、「切り分ける(爆発させる)」のがexplode、「くっつける(融合させる)」のがimplodeと考えると覚えやすいです。
4. 区切り文字を変えて応用しよう!
区切り文字は、状況によって自由に変えられます。たとえば、スペースで区切った文字列を扱うときは次のようにします。
$str = "PHP は 初心者 に やさしい 言語";
$array = explode(" ", $str);
print_r($array);
スペースで文字列が分割され、それぞれの単語が配列として取り出されます。逆にスペースでつなげるには:
$array = ["PHP", "配列", "文字列", "変換"];
$str = implode(" ", $array);
echo $str;
PHP 配列 文字列 変換
5. ユーザー入力をexplodeで処理する実践例
たとえば、ユーザーが入力フォームで「趣味」をカンマで区切って入力したとします。
$input = "映画鑑賞,旅行,読書";
$hobbies = explode(",", $input);
foreach ($hobbies as $hobby) {
echo "趣味:$hobby\n";
}
趣味:映画鑑賞
趣味:旅行
趣味:読書
このように、ユーザーの入力を使って、リストとして扱うことができます。
6. implodeでCSVデータを1行に変換する例
CSVファイルに保存するときなど、データを1行の文字列にしたい場面ではimplodeが便利です。
$data = ["田中一郎", "35", "tanaka@example.com"];
$csv_line = implode(",", $data);
echo $csv_line;
田中一郎,35,tanaka@example.com
この形式はCSVファイルと呼ばれる表形式のデータで、Excelでも開ける形式になります。
7. 文字列処理の便利な組み合わせ技
explodeやimplodeは、他の文字列関数と組み合わせるともっと便利に使えます。たとえば、トリム(空白削除)や大文字小文字変換と組み合わせて処理すると、きれいなデータに整えられます。
$input = "りんご , みかん , バナナ ";
$array = explode(",", $input);
foreach ($array as $item) {
$clean = trim($item);
echo $clean . "\n";
}
りんご
みかん
バナナ
trim関数は、文字列の前後にあるスペース(空白)を取り除く関数です。
まとめ
今回は、PHPのexplode関数とimplode関数の基本的な使い方から応用例までを学びました。文字列を分割して配列に変換するexplodeと、配列をつなぎ合わせて文字列にするimplodeは、PHPの文字列処理において非常に重要なテクニックです。
特に、フォームからの入力データを配列にしたり、CSV形式のデータを保存するような場面では頻繁に使われます。区切り文字を変更すれば、スペースや「・」、「|」などさまざまなパターンにも対応できます。また、trimやstrtolowerなどの文字列処理関数と組み合わせることで、データをよりきれいに整えることも可能です。
下記は、今回の内容を振り返る意味も込めた総合的なサンプルコードです。実務でもよく使う処理なので、ぜひ参考にしてください。
■explodeとimplodeを活用したサンプルコード
<?php
// ユーザーが入力した趣味の文字列(カンマ区切り)
$input = "音楽鑑賞, 読書 , スポーツ";
// 空白を取り除きながら配列に分割
$hobbies_raw = explode(",", $input);
$hobbies = [];
foreach ($hobbies_raw as $hobby) {
$hobbies[] = trim($hobby);
}
// 配列の各趣味を表示
foreach ($hobbies as $item) {
echo "趣味:{$item}<br>";
}
// データベース保存用にCSV形式に変換
$csv = implode(",", $hobbies);
echo "CSV出力:{$csv}";
?>
このように、explodeで分割し、trimで前後の空白を取り除き、implodeで再度つなげることで、入力データを整えながら柔軟に扱えるようになります。
また、CSV形式での保存や表示処理に応用すれば、PHPを使ったフォーム入力やデータ整理の幅が広がります。文字列と配列の相互変換は、初歩ながら実務で頻繁に登場する処理ですので、確実に理解しておきましょう。
生徒
「先生、explodeとimplodeって、文字列と配列の間を行ったり来たりできるんですね!」
先生
「そうなんだ。文字列をexplodeで分割して配列にすれば、1つ1つの要素を処理しやすくなるし、逆にimplodeでまとめればCSVなどの形式に整えられるよ。」
生徒
「ユーザー入力を処理したり、データベースに保存したりするときにすごく使えそうです!」
先生
「その通り。フォームの入力データやCSV処理なんかで大活躍するよ。あと、trimと組み合わせれば、余計なスペースもきれいにできるから実務でもよく使われる組み合わせなんだ。」
生徒
「なるほど〜。これから文字列を扱うときは、explodeとimplodeを思い出して使ってみます!」
先生
「うん、たくさん使って慣れていこう。配列と文字列の変換が自由自在になると、PHPでのデータ処理がとても楽になるよ!」