2009-03-06 2 views

ответ

24

Вы можете использовать explode, split или preg_split.

explode использует фиксированную строку:

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

в то время как split и preg_split использовать регулярное выражение:

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

Пример, в котором регулярное выражение на основе расщепления полезно:

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

Функция разделения устарела в php 5.3, поэтому вместо этого используйте explode или preg_split – Dimitri

1

Только вопрос, но вы пытаетесь сделать json из данных? Если да, то вы могли бы рассмотреть что-то вроде этого:

return json_encode(explode(' ', $inputString)); 
3
print_r(str_word_count("this is a sentence", 1)); 

Результаты в:

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

Просто подумал, что было бы отметить, что регулярное выражение Гамбо отвечал, хотя это будет более чем вероятно достаточное для большинства - может не улавливать все случаи белого пространства. Пример: Использование регулярных выражений в утвержденном ответе на следующую строку:

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

снабдил меня следующий выходом через print_r:

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

Где, как, когда, используя следующее регулярное выражение:

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

при условии, мне следующий (желаемый) выход:

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

Надеюсь, что это поможет любому, кто застрял в подобном препятствии, и смущен тем, почему.

 Смежные вопросы

  • Нет связанных вопросов^_^