# explode

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

explode — Divide un string en varios string

### Descripción

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

Devuelve un array de string, siendo cada uno un substring del parámetro `string` formado por la división realizada por los delimitadores indicados en el parámetro string `separator`.

### Parámetros

`separator`

  El string delimitador.

`string`

  El string de entrada.

`limit`

  Si el parámetro `limit` es positivo, el array devuelto contendrá el máximo de `limit` elementos, y el último elemento contendrá el resto del `string`.

  Si el parámetro `limit` es negativo, se devolverán todos los componentes a excepción del último -`limit`.

  Si el parámetro `limit` es cero, se tratará como 1.

> Nota:

> Antes de PHP 8.0, implode() aceptaba los parámetros en cualquier orden. explode() nunca ha soportado esto: Debe asegurarse de que el argumento `separator` vaya antes que el argumento `string`.

### Valores devueltos

Devuelve un array de string creados por la división del parámetro `string` usando los delimitadores indicados en el parámetro `delimiter`.

Si `separator` es un string vacío (""), explode() devolverá un ValueError. Si `separator` contiene un valor que no forma parte del parámetro `string` y se utiliza un `limit` negativo, entonces devolverá un array vacío, en caso contrario se devolverá un array que contiene el valor de `string`. Si el valor de `separator` aparece al comienzo o al final del `string`, dichos valores se añadirán como un valor de array vacío en la primera o última posición a devolver respectivamente.

### Historial de cambios

Versión | Descripción
--- | ---
8.0.0 | explode() ahora lanzará ValueError cuando el argumento `separator` reciba un string vacío (`""`). Anteriormente, explode() devolvía `false` en su lugar.

### Ejemplos

Ejemplo #1 Ejemplo de explode()

`<?php
// Ejemplo 1
$pizza = "porción1 porción2 porción3 porción4 porción5 porción6";
$porciones = explode(" ", $pizza);
echo $porciones[0]; // porción1
echo $porciones[1]; // porción2
// Ejemplo 2
$datos = "foo:*:1023:1000::/home/foo:/bin/sh";
list($user, $pass, $uid, $gid, $gecos, $home, $shell) = explode(":", $datos);
echo $user; // foo
echo $pass; // *
?>`

Ejemplo #2 Ejemplos de la devolución de explode()

`<?php
/*
Un string que no contiene el delimitador simplemente
devolverá un array de longitud uno con el string original.
*/
$entrada1 = "hola";
$entrada2 = "hola,qué tal";
var_dump( explode( ',', $entrada1 ) );
var_dump( explode( ',', $entrada2 ) );
?>`

El resultado del ejemplo sería:

    array(1)
    (
        [0] => string(4) "hola"
    )
    array(2)
    (
        [0] => string(4) "hola"
        [1] => string(8) "qué tal"
    )

Ejemplo #3 Ejemplos del parámetro `limit`

`<?php
$str = 'uno|dos|tres|cuatro';
// límite positivo
print_r(explode('|', $str, 2));
// límite negativo
print_r(explode('|', $str, -1));
?>`

El resultado del ejemplo sería:

    Array
    (
        [0] => uno
        [1] => dos|tres|cuatro
    )
    Array
    (
        [0] => uno
        [1] => dos
        [2] => tres
    )

### Notas

> Nota: Esta función es segura binariamente.

### Ver también

- preg_split() - Divide un string mediante una expresión regular
- str_split() - Convierte un string en un array
- mb_split() - Divide cadenas de caracteres multibyte usando una expresión regular
- str_word_count() - Devuelve información sobre las palabras utilizadas en un string
- strtok() - Tokeniza string
- implode() - Une elementos de un array en un string