関数・クラス解説
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
)
参考
ワード検索
※入力キーワードが、関数名・説明文・タグに含まれるものを検索関数名アルファベット別
最終更新一覧
●stristr
大文字小文字を区別せず文字列を検索し、ヒット箇所以降(あるいは以前)の文字列を返却
●stripslashes
バックスラッシュでエスケープされた文字列から、バックスラッシュを取り除く
●stripos
大文字小文字を区別せずに文字列が最初に現れる位置を取得する
●stripcslashes
addcslashes() でクォートされた文字列をアンクォートする
●strip_tags
文字列から HTML と PHP のタグを除去して返却
●strcspn
指定した文字が最初に現れる位置を調べる
●strcoll
ロケールに基づいて2つの文字列を比較し同じか(あるいは大小)を判定する
●strcmp
2つの文字列を比較し同じか(あるいは大小)を判定する
●strchr
strstr() のエイリアス
●strcasecmp
2つの文字列を比較(大文字小文字を区別せず同じとみなす)
カテゴリー一覧
PHP の振る舞いの変更
音声フォーマットの操作
認証サービス
コマンドライン関連
圧縮およびアーカイブ
暗号
データベース関連
日付および時刻関連
ファイルシステム
自然言語および文字エンコーディング
画像処理および作成
メール関連
数学
テキスト以外の MIME 型
プロセス制御
その他の基本モジュール
その他のサービス
検索エンジン用の拡張モジュール
サーバー固有のモジュール
セッション関連
テキスト処理
変数・データ型関連
ウェブサービス
Windows 用のモジュール
XML 操作
GUI用の拡張モジュール