explode

Split a string by string

&reftitle.description; `array` `explode` `string` `delimiter` `string` `string` `int` `limit`

Returns an array of strings, each of which is a substring of `string` formed by splitting it on boundaries formed by the string `delimiter`.

&reftitle.parameters;

`delimiter`

- 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.

Although `implode` can, for historical reasons, accept its parameters in either order, `explode` cannot. You must ensure that the `delimiter` argument comes before the `string` argument.

&reftitle.returnvalues;

Returns an `array` of `string`s created by splitting the `string` parameter on boundaries formed by the `delimiter`.

If `delimiter` is an empty `string` (""), `explode` will return &false;. If `delimiter` 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.

&reftitle.changelog;

&Version; | &Description;
5.1.0 | Support for negative `limit`s was added
4.0.1 | The `limit` parameter was added

&reftitle.examples;

### `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; // *

    ?>

### `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";
    var_dump( explode( ',', $input1 ) );
    var_dump( explode( ',', $input2 ) );

    ?>

&example.outputs;

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

### `limit` parameter examples

    <?php
    $str = 'one|two|three|four';

    // positive limit
    print_r(explode('|', $str, 2));

    // negative limit (since PHP 5.1)
    print_r(explode('|', $str, -1));
    ?>

&example.outputs;

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

&reftitle.notes; ¬e.bin-safe;
&reftitle.seealso;

- `preg_split`
- `str_split`
- `mb_split`
- `str_word_count`
- `strtok`
- `implode`