Pregunta

De esta cadena:

$input = "Some terms with spaces between";

¿Cómo puedo producir esta matriz?

$output = ['Some', 'terms', 'with', 'spaces', 'between'];
¿Fue útil?

Solución

Puede usar explode , split o preg_split .

explode utiliza una cadena fija:

$parts = explode(' ', $string);

mientras split y preg_split usan una expresión regular:

$parts = split(' +', $string);
$parts = preg_split('/ +/', $string);

Un ejemplo en el que la división basada en expresiones regulares es útil:

$string = 'foo   bar';  // multiple spaces
var_dump(explode(' ', $string));
var_dump(split(' +', $string));
var_dump(preg_split('/ +/', $string));

Otros consejos

$parts = explode(" ", $str);
print_r(str_word_count("this is a sentence", 1));

Resultados en:

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

Pensé que valdría la pena mencionar que la expresión regular que Gumbo publicó & # 8212; aunque es más que probable que la mayoría de & # 8212; no pueda detectar todos los casos de espacios en blanco. Un ejemplo: usar la expresión regular en la respuesta aprobada en la siguiente cadena:

$sentence = "Hello                       my name    is   peter string           splitter";

Me proporcionó el siguiente resultado a través de print_r:

Array
(
    [0] => Hello
    [1] => my
    [2] => name
    [3] => is
    [4] => peter
    [5] => string
    [6] =>      splitter
)

Donde, cuando se usa la siguiente expresión regular:

preg_split('/\s+/', $sentence);

Me proporcionó la siguiente salida (deseada):

Array
(
    [0] => Hello
    [1] => my
    [2] => name
    [3] => is
    [4] => peter
    [5] => string
    [6] => splitter
)

Espero que ayude a alguien atrapado en un obstáculo similar y esté confundido en cuanto a por qué.

Solo una pregunta, pero ¿estás tratando de sacar a Json de los datos? Si es así, entonces podrías considerar algo como esto:

return json_encode(explode(' ', $inputString));
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top