Из этой строки:Как преобразовать предложение в массив слов?
$input = "Some terms with spaces between";
как я могу производить этот массив?
$output = ['Some', 'terms', 'with', 'spaces', 'between'];
Из этой строки:Как преобразовать предложение в массив слов?
$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);
Только вопрос, но вы пытаетесь сделать json из данных? Если да, то вы могли бы рассмотреть что-то вроде этого:
return json_encode(explode(' ', $inputString));
print_r(str_word_count("this is a sentence", 1));
Результаты в:
Array ([0] => this [1] => is [2] => a [3] => sentence)
Просто подумал, что было бы отметить, что регулярное выражение Гамбо отвечал, хотя это будет более чем вероятно достаточное для большинства - может не улавливать все случаи белого пространства. Пример: Использование регулярных выражений в утвержденном ответе на следующую строку:
$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
)
Надеюсь, что это поможет любому, кто застрял в подобном препятствии, и смущен тем, почему.
Функция разделения устарела в php 5.3, поэтому вместо этого используйте explode или preg_split – Dimitri