関数・クラス解説

explode

version:PHP 4, PHP 5, PHP 7 (公式)

文字列を指定した文字で分割し配列で返す

フォーマット

array : explode ( string $delimiter , string $string [, int $limit = PHP_INT_MAX ] )

パラメータ

string $delimiter(必須)
区切り用文字列。ここで指定した文字列ごとに区切られます。

string $string(必須)
分割したい文字列を指定。この文字列が分割されます

int $limit (初期値: PHP_INT_MAX ※下記参照)
返却される配列の最大要素数。指定時は、配列の最大数に達した場合は以降の区切り文字は分割されず、最後の配列要素に残りのすべてが格納されます。
0を指定した場合は、1を指定したものとみなされます。
マイナスを指定した場合は、配列の後ろから limit 番までの要素が除外されて返却されます。


※PHP_INT_MAX(PHP 5.0.5 以降で利用可能)
PHP がサポートする整数型の最大値。実行環境により以下のようになる。
32bit のシステムでは 通常は int(2147483647)。
64bit のシステムでは、int(9223372036854775807)。

返り値 : array
delimitr 空文字 "" が指定された場合はFALSE が返ります。

解説

string を文字列 delimiter で区切って分割し、配列の各要素に格納して返します。
この関数はバイナリデータに対応しています。

記述サンプル

//PHP 7.4.6で実行
//文字列指定
$string = "abc|defg|hi|jklmno|pqrs|tuvw|xyz";
$result = explode("|", $string);
echo $result[0]; // abc
echo $result[1]; // defg
echo $result[6]; // xyz

/* ----------------------------- */

//List に格納
$string = "abc defg hi jklmno pqrs tuvw xyz";
list($first, $second, $third, $fourth, $fifth, $sixth, $seventh) = explode(" ", $string);
echo $first; // abc
echo $second; // defg
echo $seventh; // xyz

/* ----------------------------- */

//バイナリデータに対応
$string = "あいう|を|えおかき|を|くけこさ|を|しすせそ|を|たちつてと";
$result = explode("|を|", $string);

array(5) {
 [0] => あいう
 [1] => えおかき
 [2] => くけこさ
 [3] => しすせそ
 [4] => たちつてと
}

/* ----------------------------- */

//delimiter が含まれない場合
$result1 = explode('&', "abcdef");

//結果 すべての文字列が一つの要素になって返却される
Array
(
 [0] => abcdef
)

/* ----------------------------- */

//文字列の最初がdelimiter
$result2 = explode('&', "&ABCDEFGHIJK");

//結果 要素0 が空文字
Array
(
 [0] => 
 [1] => ABCDEFGHIJK
)

/* ----------------------------- */

//文字列がdelimiter のみ
$result3 = explode('&', "&");

//結果 要素 0,1 が空文字
Array
(
 [0] => 
 [1] => 
)

/* ----------------------------- */

$str = '一|二|三|四';

// 正の値を持つ limit
$result = explode('|', $str, 2);

//結果 最大要素数2に制限
Array
(
 [0] => 一
 [1] => 二|三|四
)

/* ----------------------------- */

// limit にマイナスの値指定(PHP 5.1 以降)
$result = explode('|', $str, -2);

//結果 後ろから2つ目までを除外
Array
(
 [0] => 一
 [1] => 二
)

参考リンク

mb_split マルチバイト文字列を正規表現により分割する
preg_split 正規表現で文字列を分割する
implode 配列の各要素を指定文字列を挟んで連結する
str_split 文字列を分割し配列で返却
str_word_count 文字列に含まれる単語の数や単語に関する情報を返却する
strtok 文字列をトークンに分割する

タグ

String 文字列 分割


公式リファレンス

書式

explode ( string $delimiter , string $string [, int $limit = PHP_INT_MAX ] ) : array

説明

文字列の配列を返します。この配列の各要素は、 string を文字列 delimiter で区切った部分文字列となります。

パラメータ

delimiter
区切り文字列。
string
入力文字列。
limit
limit に正の値が指定された場合、返される配列には 最大 limit の要素が含まれ、その最後の要素には string の残りの部分が全て含まれます。 もし limit パラメータが負の場合、 最後の -limit 個の要素を除く全ての構成要素が返されます。 limit パラメータがゼロの場合は、1 を指定したものとみなされます。
注意: 歴史的理由により、implode() はいずれのパラメータ順も受け入れることができますが、 explode() はそうできません。 string 引数の前に必ず delimiter 引数がくるように確認する必要があります。

返値

string の内容を delimiter で分割した文字列の配列を返します。 空の文字列 ("") が delimiter として使用された場合、 explode() は FALSE を返します。delimiter に引数 string に含まれていない値が含まれている場合は、 limit が負の値なら空の配列、そうでなければ 引数 string を含む配列を返します。

注意

注意: この関数はバイナリデータに対応しています。

サンプル

例1 explode() の例

// 例 1 $pizza  = "piece1 piece2 piece3 piece4 piece5 piece6"; $pieces = explode(" ", $pizza); echo $pieces[0]; // piece1 echo $pieces[1]; // piece2 // 例 2 $data = "foo:*:1023:1000::/home/foo:/bin/sh"; list($user, $pass, $uid, $gid, $gecos, $home, $shell) = explode(":", $data); echo $user; // foo echo $pass; // *

例2 explode() の返り値の例

/*    デリミタを含まない文字列の場合は、    単に元の文字列だけを含む一要素の配列を返します */ $input1 = "hello"; $input2 = "hello,there"; $input3 = ','; var_dump( explode( ',', $input1 ) ); var_dump( explode( ',', $input2 ) ); var_dump( explode( ',', $input3 ) );

上の例の出力は以下となります。

array(1) ( [0] => string(5) "hello" ) array(2) ( [0] => string(5) "hello" [1] => string(5) "there" ) array(2) ( [0] => string(0) "" [1] => string(0) "" )

例3 limit パラメータの例

$str = 'one|two|three|four'; // 正の値を持つ limit print_r(explode('|', $str, 2)); // 負の値を持つ limit (PHP 5.1 以降) print_r(explode('|', $str, -1));

上の例の出力は以下となります。

Array ( [0] => one [1] => two|three|four ) Array ( [0] => one [1] => two [2] => three )

参考

  • preg_split() - 正規表現で文字列を分割する
  • str_split() - 文字列を配列に変換する
  • mb_split() - マルチバイト文字列を正規表現により分割する
  • str_word_count() - 文字列に使用されている単語についての情報を返す
  • strtok() - 文字列をトークンに分割する
  • implode() - 配列要素を文字列により連結する
  • ワード検索


    ※入力キーワードが、関数名・説明文・タグに含まれるものを検索

    関数名アルファベット別

    A B C D E F G H I J
    K L M N O P Q R S T
    U V W X Y Z _

    最終更新一覧

    stristr
     大文字小文字を区別せず文字列を検索し、ヒット箇所以降(あるいは以前)の文字列を返却

    stripslashes
     バックスラッシュでエスケープされた文字列から、バックスラッシュを取り除く

    stripos
     大文字小文字を区別せずに文字列が最初に現れる位置を取得する

    stripcslashes
     addcslashes() でクォートされた文字列をアンクォートする

    strip_tags
     文字列から HTML と PHP のタグを除去して返却

    strcspn
     指定した文字が最初に現れる位置を調べる

    strcoll
     ロケールに基づいて2つの文字列を比較し同じか(あるいは大小)を判定する

    strcmp
     2つの文字列を比較し同じか(あるいは大小)を判定する

    strchr
     strstr() のエイリアス

    strcasecmp
     2つの文字列を比較(大文字小文字を区別せず同じとみなす)

    カテゴリー一覧

    PHP の振る舞いの変更
    音声フォーマットの操作
    認証サービス
    コマンドライン関連
    圧縮およびアーカイブ
    暗号
    データベース関連
    日付および時刻関連
    ファイルシステム
    自然言語および文字エンコーディング
    画像処理および作成
    メール関連
    数学
    テキスト以外の MIME 型
    プロセス制御
    その他の基本モジュール
    その他のサービス
    検索エンジン用の拡張モジュール
    サーバー固有のモジュール
    セッション関連
    テキスト処理
    変数・データ型関連
    ウェブサービス
    Windows 用のモジュール
    XML 操作
    GUI用の拡張モジュール