On this page
explode
(PHP 4, PHP 5, PHP 7, PHP 8)
explode — Split a string by a string
Description
explode(string $separator, string $string, int $limit = PHP_INT_MAX): array
Returns an array of strings, each of which is a substring of string formed by splitting it on boundaries formed by the string separator.
Parameters
separator-
The boundary string.
string-
The input string.
limit-
If
limitis set and positive, the returned array will contain a maximum oflimitelements with the last element containing the rest ofstring.If the
limitparameter is negative, all components except the last -limitare returned.If the
limitparameter is zero, then this is treated as 1.
Note:
Prior to PHP 8.0, implode() accepted its parameters in either order. explode() has never supported this: you must ensure that the
separatorargument comes before thestringargument.
Return Values
Returns an array of strings created by splitting the string parameter on boundaries formed by the separator.
If separator is an empty string (""), explode() throws a ValueError. If separator contains a value that is not contained in string and a negative limit is used, then an empty array will be returned, otherwise an array containing string will be returned. If separator values appear at the start or end of string, said values will be added as an empty array value either in the first or last position of the returned array respectively.
Changelog
| Version | Description |
|---|---|
| 8.0.0 | explode() will now throw ValueError when separator parameter is given an empty string (""). Previously, explode() returned false instead. |
Examples
Example #1 explode() examples
<?php
// Example 1
$pizza = "piece1 piece2 piece3 piece4 piece5 piece6";
$pieces = explode(" ", $pizza);
echo $pieces[0]; // piece1
echo $pieces[1]; // piece2
// Example 2
$data = "foo:*:1023:1000::/home/foo:/bin/sh";
list($user, $pass, $uid, $gid, $gecos, $home, $shell) = explode(":", $data);
echo $user; // foo
echo $pass; // *
?>
Example #2 explode() return examples
<?php
/*
A string that doesn't contain the delimiter will simply
return a one-length array of the original string.
*/
$input1 = "hello";
$input2 = "hello,there";
$input3 = ',';
var_dump( explode( ',', $input1 ) );
var_dump( explode( ',', $input2 ) );
var_dump( explode( ',', $input3 ) );
?>
The above example will output:
array(1)
(
[0] => string(5) "hello"
)
array(2)
(
[0] => string(5) "hello"
[1] => string(5) "there"
)
array(2)
(
[0] => string(0) ""
[1] => string(0) ""
)
Example #3 limit parameter examples
<?php
$str = 'one|two|three|four';
// positive limit
print_r(explode('|', $str, 2));
// negative limit
print_r(explode('|', $str, -1));
?>
The above example will output:
Array
(
[0] => one
[1] => two|three|four
)
Array
(
[0] => one
[1] => two
[2] => three
)
Notes
Note: This function is binary-safe.
See Also
- preg_split() - Split string by a regular expression
- str_split() - Convert a string to an array
- mb_split() - Split multibyte string using regular expression
- str_word_count() - Return information about words used in a string
- strtok() - Tokenize string
- implode() - Join array elements with a string
© 1997–2023 The PHP Documentation Group
Licensed under the Creative Commons Attribution License v3.0 or later.
https://www.php.net/manual/en/function.explode.php