Как я могу преобразовать предложение в массив слов? - PullRequest
7 голосов
/ 06 марта 2009

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

$input = "Some terms with spaces between";

как мне создать этот массив?

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

Ответы [ 5 ]

25 голосов
/ 06 марта 2009

Вы можете использовать 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));
10 голосов
/ 06 марта 2009
$parts = explode(" ", $str);
4 голосов
/ 04 июля 2010
print_r(str_word_count("this is a sentence", 1));

Результат:

Array ( [0] => this [1] => is [2] => a [3] => sentence )
2 голосов
/ 15 января 2015

Просто подумал, что стоило бы упомянуть, что регулярное выражение, опубликованное 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
)

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

1 голос
/ 06 марта 2009

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

return json_encode(explode(' ', $inputString));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...