2009-03-06 64 views

回答

24

你可以使用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)); 
+9

拆分函数在PHP 5.3中已弃用,所以请使用explode或preg_split – Dimitri 2010-07-04 16:18:50

10
$parts = explode(" ", $str); 
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 
) 

希望它可以帮助任何人陷入类似的障碍,并为什么困惑。

相关问题