Как преобразовать предложение в массив слов?

Из этой строки:

$input = "Some terms with spaces between"; 

как я могу создать этот массив?

 $output = ['Some', 'terms', 'with', 'spaces', 'between']; 

Вы можете использовать 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)); 
 $parts = explode(" ", $str); 
 print_r(str_word_count("this is a sentence", 1)); 

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

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

Просто вопрос, но пытаетесь ли вы сделать Json из данных? Если это так, то вы можете подумать над чем-то вроде этого:

 return json_encode(explode(' ', $inputString)); 

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

 $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 ) 

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