En este post te voy a mostrar cómo convertir un string a un array en PHP, es decir, a partir de una cadena crear un arreglo en PHP.
Para ello vamos a usar la función explode y también str_split
.
Cadena a arreglo en PHP
Vamos a usar la función explode; para convertir la cadena a arreglo necesitamos un delimitador que normalmente podría ser un espacio.
La sintaxis es:
$arreglo = explode($separador, $cadena);
Veamos un ejemplo:
<?php
/*
Cadena a arreglo en PHP
https://parzibyte.me/blog
*/
$cadena = "Hola mundo me gusta PHP";
$separador = " "; // Usar espacio como separador
$arreglo = explode($separador, $cadena);
var_dump($arreglo);
/*
Salida:
array(5) {
[0]=>
string(4) "Hola"
[1]=>
string(5) "mundo"
[2]=>
string(2) "me"
[3]=>
string(5) "gusta"
[4]=>
string(3) "PHP"
}
*/
En este caso usamos el espacio como separador. Puedes usar cualquier otro delimitador, incluso usar otra cadena como separador, como lo vimos en otro post.
Uso de str_split
El siguiente ejemplo de PHP usa str_split
para separar todas las letras (y espacios) de una cadena:
<?php
/*
Cadena a arreglo en PHP: separar todas las letras
https://parzibyte.me/blog
*/
$cadena = "http://parzibyte.me/blog";
$arreglo = str_split($cadena);
var_dump($arreglo);
/*
Salida:
array(24) {
[0]=>
string(1) "h"
[1]=>
string(1) "t"
[2]=>
string(1) "t"
[3]=>
string(1) "p"
[4]=>
string(1) ":"
[5]=>
string(1) "/"
[6]=>
string(1) "/"
[7]=>
string(1) "p"
[8]=>
string(1) "a"
[9]=>
string(1) "r"
[10]=>
string(1) "z"
[11]=>
string(1) "i"
[12]=>
string(1) "b"
[13]=>
string(1) "y"
[14]=>
string(1) "t"
[15]=>
string(1) "e"
[16]=>
string(1) "."
[17]=>
string(1) "m"
[18]=>
string(1) "e"
[19]=>
string(1) "/"
[20]=>
string(1) "b"
[21]=>
string(1) "l"
[22]=>
string(1) "o"
[23]=>
string(1) "g"
}
*/
Usamos esta función en lugar de explode, ya que con explode no podemos usar un delimitador vacío.
Nota: si por alguna razón trabajas con cadenas multibyte el equivalente es:
$arreglo = preg_split('//u', $cadena,-1, PREG_SPLIT_NO_EMPTY);