Da questa stringa:Come posso convertire una frase in un array di parole?
$input = "Some terms with spaces between";
come posso produrre questo array?
$output = ['Some', 'terms', 'with', 'spaces', 'between'];
Da questa stringa:Come posso convertire una frase in un array di parole?
$input = "Some terms with spaces between";
come posso produrre questo array?
$output = ['Some', 'terms', 'with', 'spaces', 'between'];
Si potrebbe utilizzare explode
, split
o preg_split
.
explode
utilizza una stringa fissa:
$parts = explode(' ', $string);
mentre split
e preg_split
usare un'espressione regolare:
$parts = split(' +', $string);
$parts = preg_split('/ +/', $string);
Un esempio in cui la normale divisione basata espressione è utile:
$string = 'foo bar'; // multiple spaces
var_dump(explode(' ', $string));
var_dump(split(' +', $string));
var_dump(preg_split('/ +/', $string));
$parts = explode(" ", $str);
Solo una domanda, ma stai cercando di fare un json fuori dai dati? Se è così, allora si potrebbe prendere in considerazione qualcosa di simile:
return json_encode(explode(' ', $inputString));
print_r(str_word_count("this is a sentence", 1));
Risultati in:
Array ([0] => this [1] => is [2] => a [3] => sentence)
solo pensato che sarebbe stato la pena ricordare che l'espressione regolare Gumbo pubblicato, anche se lo farà più che probabilmente è sufficiente per la maggior parte, potrebbe non rilevare tutti i casi di spazio bianco. Un esempio: Usando l'espressione regolare nella risposta approvato sulla stringa qui sotto:
$sentence = "Hello my name is peter string splitter";
mi ha fornito il seguente output attraverso print_r:
Array
(
[0] => Hello
[1] => my
[2] => name
[3] => is
[4] => peter
[5] => string
[6] => splitter
)
Dove, come, quando si usa la seguente espressione regolare:
preg_split('/\s+/', $sentence);
mi ha fornito la seguente (desiderato) di uscita:
Array
(
[0] => Hello
[1] => my
[2] => name
[3] => is
[4] => peter
[5] => string
[6] => splitter
)
Spero che aiuti qualcuno bloccato a un simile ostacolo e sia confuso sul perché.
La funzione split è obsoleta in php 5.3, quindi utilizzare explode o preg_split – Dimitri