2009-03-06 14 views

Répondre

24

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

La fonction split est obsolète en PHP 5.3 alors utilisez plutôt explode ou preg_split – Dimitri

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

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

Résultats dans:

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

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.

Questions connexes