Divide una string en segmentos

# explode

(PHP 4, PHP 5, PHP 7, PHP 8)

explode — Divide una string en segmentos

### Descripción

function explode(string `$separator`, string `$string`, int `$limit` = `PHP_INT_MAX`): array

explode() retorna un array de strings, cada una de ellas siendo una substring del parámetro `string` extraída utilizando el separador `separator`.

### Parámetros

`separator`

  El separador.

`string`

  La string inicial.

`limit`

  Si `limit` está definido y es positivo, el array retornado contiene, como máximo, `limit` elementos, y el último elemento contendrá el resto de la string.

  Si el parámetro `limit` es negativo, todos los elementos, excepto los últimos -`limit` elementos, son retornados.

  Si `limit` vale cero, es tratado como si valiera 1.

> Nota:

> Antes de PHP 8.0, implode() aceptaba sus parámetros en cualquier orden. explode() nunca ha soportado esto: se debe asegurar que el parámetro `separator` esté colocado antes del parámetro `string`.

### Valores devueltos

Retorna un array de strings creadas al dividir la string del parámetro `string` en varios trozos siguiendo el parámetro `separator`.

Si `separator` es una string vacía (""), explode() lanzará una ValueError. Si `separator` contiene un valor que no está contenido en `string` así como un valor negativo para el parámetro `limit`, entonces explode() retornará un array vacío, de lo contrario, un array conteniendo la string `string` entera. Si los valores de `separator` aparecen al inicio o al final de `string`, estos valores serán añadidos como un valor de un array vacío ya sea en la primera o última posición del array retornado respectivamente.

### Historial de cambios

Versión | Descripción
--- | ---
8.0.0 | explode() lanzará ahora una ValueError cuando el parámetro `separator` es una string vacía (`""`). Anteriormente, explode() retornaba `false`.

### Ejemplos

Ejemplo #1 Ejemplo con explode()

    <?php
    // Ejemplo 1
    $pizza  = "piece1 piece2 piece3 piece4 piece5 piece6";
    $pieces = explode(" ", $pizza);
    echo $pieces[0], PHP_EOL; // piece1
    echo $pieces[1], PHP_EOL; // piece2

    // Ejemplo 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; // *

    ?>

Ejemplo #2 Ejemplo de valores retornados por la función explode()

    <?php
    /* Una string que no contiene delimitador retornará un array
       conteniendo solo un elemento representando la string original */
    $input1 = "hello";
    $input2 = "hello,there";
    $input3 = ',';
    var_dump( explode( ',', $input1 ) );
    var_dump( explode( ',', $input2 ) );
    var_dump( explode( ',', $input3 ) );

    ?>

El ejemplo anterior mostrará:

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

Ejemplo #3 Ejemplo con explode() y el parámetro `limit`

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

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

    // limit negativo
    print_r(explode('|', $str, -1));
    ?>

El ejemplo anterior mostrará:

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

### Notas

> Nota: Esta función es segura para sistemas binarios.

### Ver también

- preg_split() - Divide una cadena mediante expresión regular
- str_split() - Convierte un string en un array
- mb_split() - Divide una string en un array utilizando una expresión regular multibyte
- str_word_count() - Cuenta el número de palabras utilizadas en un string
- strtok() - Divide una cadena en segmentos
- implode() - Une elementos de un array en un string

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