2009-03-06 9 views

Respuesta

24

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)); 
+9

La función de división está en desuso en php 5.3 así que use explosde o preg_split en su lugar – Dimitri

10
$parts = explode(" ", $str); 
1

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)); 
3
print_r(str_word_count("this is a sentence", 1)); 

Resultados en:

Array ([0] => this [1] => is [2] => a [3] => sentence) 
1

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é.

Cuestiones relacionadas