explode
(PHP 4, PHP 5, PHP 7)
explode — 文字列を文字列により分割する
説明
$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 を含む配列を返します。
変更履歴
| バージョン | 説明 |
|---|---|
| 5.1.0 |
limit に負の数を指定できるようになりました。
|
例
例1 explode() の例
<?php
// 例 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() の返り値の例
<?php
/*
デリミタを含まない文字列の場合は、
単に元の文字列だけを含む一要素の配列を返します
*/
$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 パラメータの例
<?php
$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() - 配列要素を文字列により連結する