¿Dividir una cadena delimitada por comas en una matriz?
Necesito dividir mi entrada de cadena en una matriz entre las comas.
¿Hay alguna manera de explotar una cadena separada por comas en una matriz indexada y plana?
Aporte:
9,[email protected],8
Producción:
['9', 'admin@example', '8']
Intenta explotar :
$myString = "9,[email protected],8";
$myArray = explode(',', $myString);
print_r($myArray);
Producción :
Array
(
[0] => 9
[1] => [email protected]
[2] => 8
)
$string = '9,[email protected],8';
$array = explode(',', $string);
Para situaciones más complicadas, es posible que necesites utilizar preg_split
.
Si esa cadena proviene de un archivo csv, lo usaría fgetcsv()
(o str_getcsv()
si tienes PHP V5.3). Eso le permitirá analizar los valores citados correctamente. Si no es un csv, explode()
debería ser la mejor opción.
¿Qué pasa si quieres que tus partes contengan comas? Bueno, cítalos. ¿Y luego qué pasa con las comillas? Bueno, duplícalos. En otras palabras:
part1,"part2,with a comma and a quote "" in it",part3
PHP proporciona la función https://php.net/str_getcsv para analizar una cadena como si fuera una línea en un archivo CSV que se puede usar con la línea anterior en lugar de explode
:
print_r(str_getcsv('part1,"part2,with a comma and a quote "" in it",part3'));
Array
(
[0] => part1
[1] => part2,with a comma and a quote " in it
[2] => part3
)