Caution

お使いのブラウザはJavaScriptが実行できない状態になっております。
当サイトはWebプログラミングの情報サイトの為、
JavaScriptが実行できない環境では正しいコンテンツが提供出来ません。
JavaScriptが実行可能な状態でご閲覧頂くようお願い申し上げます。

PHP辞典

  1. トップページ
  2. PHP辞典
  3. explode() / implode()

explode() / implode()対応: PHP 4(2000)

文字列を指定した区切り文字で分割して配列にしたり、配列の要素を結合して文字列にしたりします。CSVデータの処理やURLの分解など、さまざまな場面で活用されます。

構文
// 区切り文字で分割して配列にします。
explode($separator, $string, $limit);

// 配列の要素を結合して文字列にします。
implode($separator, $array);

// 文字列を指定した長さで分割して配列にします。
str_split($string, $length);
関数一覧
関数概要
explode($separator, $string, $limit)$separator で $string を分割し、配列を返します。$limit は分割数の上限で省略可能です。
implode($separator, $array)$array の各要素を $separator で結合した文字列を返します。
str_split($string, $length)文字列を $length 文字ずつに分割して配列を返します。$length の既定値は1です。
戻り値

『explode()』『str_split()』は配列を返します。『implode()』は結合された文字列を返します。

サンプルコード
<?php
// カンマ区切りの文字列を配列に分割します。
$csv = "りんご,みかん,ぶどう";
$fruits = explode(",", $csv);
var_dump($fruits); // array("りんご", "みかん", "ぶどう") と出力されます。

// 分割数の上限を指定します。
$data = "山田:太郎:30:東京";
$parts = explode(":", $data, 3);
var_dump($parts); // array("山田", "太郎", "30:東京") と出力されます。残りはまとめて最後の要素になります。

// 配列を文字列に結合します。
$words = ["PHP", "は", "楽しい"];
echo implode("", $words); // 『PHPは楽しい』と出力されます。

// 区切り文字を指定して結合します。
$tags = ["HTML", "CSS", "JavaScript"];
echo implode(", ", $tags); // 『HTML, CSS, JavaScript』と出力されます。

// SQLの IN 句を組み立てる例です。
$ids = [1, 5, 12, 23];
$in_clause = implode(",", $ids);
echo "SELECT * FROM users WHERE id IN ($in_clause)"; // IN句が組み立てられます。

// str_split() で1文字ずつ分割します。
$chars = str_split("Hello");
var_dump($chars); // array("H", "e", "l", "l", "o") と出力されます。

// str_split() で指定した長さごとに分割します。
$code = "ABCDEFGHIJ";
$chunks = str_split($code, 3);
var_dump($chunks); // array("ABC", "DEF", "GHI", "J") と出力されます。

// パスの分解に活用する例です。
$path = "/var/www/html/index.php";
$segments = explode("/", trim($path, "/"));
var_dump($segments); // array("var", "www", "html", "index.php") と出力されます。
概要

『explode()』と『implode()』は文字列と配列の相互変換を行う関数です。CSVデータの処理、URLやファイルパスの分解、SQL文の組み立てなど、PHPの開発では非常に頻繁に使われます。

『explode()』の第3引数に正の数を指定すると分割数の上限を設定でき、最後の要素に残りの文字列がまとめて格納されます。負の数を指定すると、末尾からその数だけ要素が除外されます。区切り文字に空文字列を指定するとエラーになるため注意してください。1文字ずつの分割には『str_split()』を使用します。

『str_split()』は区切り文字ではなく文字数で分割する関数で、固定長データの処理やチャンク分割に便利です。文字列の置換には『str_replace()』、文字列の検索には『strpos()』を使用してください。

記事の間違いや著作権の侵害等ございましたらお手数ですがまでご連絡頂ければ幸いです。