Split a string by a string

# 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 `limit` is set and positive, the returned array will contain a maximum of `limit` elements with the last element containing the rest of `string`.

  If the `limit` parameter is negative, all components except the last -`limit` are returned.

  If the `limit` parameter 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 `separator` argument comes before the `string` argument.

### 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], PHP_EOL; // piece1
echo $pieces[1], PHP_EOL; // piece2
// Example 2
$data = "foo:*:1023:1000::/home/foo:/bin/sh";
list($user, $pass, $uid, $gid, $gecos, $home, $shell) = explode(":", $data);
echo $user, PHP_EOL; // foo
echo $pass, PHP_EOL; // *
?>`

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

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open