De cette chaîne:Comment puis-je convertir une phrase en un tableau de mots?
$input = "Some terms with spaces between";
comment puis-je produire ce tableau?
$output = ['Some', 'terms', 'with', 'spaces', 'between'];
De cette chaîne:Comment puis-je convertir une phrase en un tableau de mots?
$input = "Some terms with spaces between";
comment puis-je produire ce tableau?
$output = ['Some', 'terms', 'with', 'spaces', 'between'];
Vous pouvez utiliser explode
, split
ou preg_split
.
explode
utilise une chaîne fixe:
$parts = explode(' ', $string);
tandis que split
et preg_split
utiliser une expression régulière:
$parts = split(' +', $string);
$parts = preg_split('/ +/', $string);
Un exemple où la division sur la base expression régulière est utile:
$string = 'foo bar'; // multiple spaces
var_dump(explode(' ', $string));
var_dump(split(' +', $string));
var_dump(preg_split('/ +/', $string));
$parts = explode(" ", $str);
Juste une question, mais essayez-vous de faire json sur les données? Si oui, alors vous pourriez envisager quelque chose comme ceci:
return json_encode(explode(' ', $inputString));
print_r(str_word_count("this is a sentence", 1));
Résultats dans:
Array ([0] => this [1] => is [2] => a [3] => sentence)
juste pensé qu'il serait utile de mentionner que l'expression régulière Gumbo affichée-même si elle sera plus que probablement suffisant pour la plupart - ne peut pas attraper tous les cas d'espace blanc. Un exemple: En utilisant l'expression régulière dans la réponse approuvée sur la chaîne ci-dessous: me
$sentence = "Hello my name is peter string splitter";
Fourni avec la sortie suivante par print_r:
Array
(
[0] => Hello
[1] => my
[2] => name
[3] => is
[4] => peter
[5] => string
[6] => splitter
)
Où que, lorsque vous utilisez l'expression régulière suivante:
preg_split('/\s+/', $sentence);
m'a fourni les éléments suivants (souhaitée) sortie:
Array
(
[0] => Hello
[1] => my
[2] => name
[3] => is
[4] => peter
[5] => string
[6] => splitter
)
Espérons que cela aide quelqu'un qui est bloqué à un obstacle similaire et est confus quant à pourquoi.
La fonction split est obsolète en PHP 5.3 alors utilisez plutôt explode ou preg_split – Dimitri