De esta cadena:¿Cómo puedo convertir una oración en una matriz de palabras?
$input = "Some terms with spaces between";
cómo puedo producir esta matriz?
$output = ['Some', 'terms', 'with', 'spaces', 'between'];
De esta cadena:¿Cómo puedo convertir una oración en una matriz de palabras?
$input = "Some terms with spaces between";
cómo puedo producir esta matriz?
$output = ['Some', 'terms', 'with', 'spaces', 'between'];
Usted podría utilizar explode
, split
o preg_split
.
explode
utiliza una cadena fija:
$parts = explode(' ', $string);
mientras split
y preg_split
utilizar una expresión regular:
$parts = split(' +', $string);
$parts = preg_split('/ +/', $string);
un ejemplo donde la división normal basado expresión es útil:
$string = 'foo bar'; // multiple spaces
var_dump(explode(' ', $string));
var_dump(split(' +', $string));
var_dump(preg_split('/ +/', $string));
$parts = explode(" ", $str);
Solo una pregunta, pero ¿Estás tratando de hacer json fuera de los datos? Si es así, entonces usted podría considerar algo como esto:
return json_encode(explode(' ', $inputString));
print_r(str_word_count("this is a sentence", 1));
Resultados en:
Array ([0] => this [1] => is [2] => a [3] => sentence)
sólo pensé que valdría la pena mencionar que la expresión regular Gumbo publicada, aunque lo hará lo más probable es que sea suficiente para la mayoría; es posible que no capture todos los casos de espacio en blanco. Un ejemplo: El uso de la expresión regular en la respuesta aprobada en la cuerda a continuación:
$sentence = "Hello my name is peter string splitter";
me proporcionó la siguiente salida a través print_r:
Array
(
[0] => Hello
[1] => my
[2] => name
[3] => is
[4] => peter
[5] => string
[6] => splitter
)
Donde como, cuando se utiliza la siguiente expresión regular:
preg_split('/\s+/', $sentence);
me proporcionó el siguiente resultado (deseado):
Array
(
[0] => Hello
[1] => my
[2] => name
[3] => is
[4] => peter
[5] => string
[6] => splitter
)
Espero que ayude a cualquier persona atrapada en un obstáculo similar y no sabe por qué.
La función de división está en desuso en php 5.3 así que use explosde o preg_split en su lugar – Dimitri