我有一个输入,用户可以键入多个单词,并告诉他们用空格分隔它。因此,输入可以是这样的:在每个空白处分割一个PHP字符串
foo
或像这样:
foo bar php js
我如何检查的空间,如果有空间,分割的话,那么把它所有到一个数组?我将在我的程序中循环访问该数组。我只是新来的字符串处理像这样。
我有一个输入,用户可以键入多个单词,并告诉他们用空格分隔它。因此,输入可以是这样的:在每个空白处分割一个PHP字符串
foo
或像这样:
foo bar php js
我如何检查的空间,如果有空间,分割的话,那么把它所有到一个数组?我将在我的程序中循环访问该数组。我只是新来的字符串处理像这样。
// Example 1
$pizza = "piece1 piece2 piece3 piece4 piece5 piece6";
$pieces = explode(" ", $pizza);
echo $pieces[0]; // piece1
echo $pieces[1]; // piece2
正如丹尼尔说,explode()
非常适合这种情况。你可能还想看看preg_split()
(纯粹是为了将来的参考),因为它接受一个正则表达式,而不仅仅是一个简单的分隔符,并且允许你在一个更复杂的模式上分解输入。
`split`已被废弃,应尽量避免。如果您需要使用正则表达式,请使用`preg_split`而不是... – ircmaxell 2011-02-16 18:03:16
daniel已经发布关于滑动部分,让我加上空间部分的检查。
$pizza = "piece1 piece2 piece3 piece4 piece5 piece6";
$pizaa = trim($pizza);
if(strpos($pizza,' ') >= 0)
{
$pieces = explode(" ", $pizza);
echo $pieces[0]; // piece1
echo $pieces[1]; // piece2
}else {
echo $pizza;
}
为了优化的目的,我认为在使用爆炸函数之前,最好先删除多余的空格,比如双空格。例如:如果您有"foo bar php js "
,则在使用爆炸功能之前,此字符串必须变为"foo bar php js"
。你可以试试这个代码:
$charSet = preg_replace(array('/\s{2,}/', '/[\t\n]/'), ' ', $charSet);
$charSet = rtrim($charSet);
$charSetArray = explode(" ", $charSet);
echo $charSetArray[0];
echo $charSetArray[1];
[KABOOM](http://www.php.net/explode) – BoltClock 2011-02-16 17:58:39