2009-03-06 8 views

risposta

24

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

La funzione split è obsoleta in php 5.3, quindi utilizzare explode o preg_split – Dimitri

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

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

Risultati in:

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

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