如何将句子转换为单词数组?

时间:2009-03-06 12:43:59

标签: php arrays string split

从这个字符串:

$input = "Some terms with spaces between";

我该如何制作这个数组?

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

5 个答案:

答案 0 :(得分:25)

您可以使用explodesplitpreg_split

explode使用固定字符串:

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

splitpreg_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));

答案 1 :(得分:10)

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

答案 2 :(得分:4)

print_r(str_word_count("this is a sentence", 1));

结果:

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

答案 3 :(得分:2)

只是认为值得一提的是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
)

希望它可以帮助任何陷入类似障碍的人,并对其原因感到困惑。

答案 4 :(得分:1)

只是一个问题,但你是否试图让json从数据中解脱出来?如果是这样,那么你可能会考虑这样的事情:

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