0

如何检查字符串是多词句子还是单个词?

我尝试用空格分割,所以如果它是一个单词,则数组中只有一个单词,如果有更多,那么它们都将在数组中。

但是,当我尝试按空格分割并遍历该数组时,我没有得到任何输出。

这是代码:

$input = "the quick brown fox jumped over the lazy dog";

$sentence = explode(" ", $input);

foreach($sentence as $item){
    echo $item;
}

以上没有给我任何输出。

所以,我有两个问题:

  1. 如何在 if 语句中检测字符串是否由多个单词组成?
  2. 为什么我上面的代码没有将句子分成带有单词的数组?
4

6 回答 6

4

尚未运行此解决方案或 hek2mgl 解决方案之间的指标,但这应该更快:

if (stripos($input, ' ') !== false) { echo 'ZOMG I HAS WORDS'; }

此外,如评论中所述,您发布的代码按预期工作。

于 2013-06-05T23:39:25.857 回答
2

作为参考,str_word_count($string)它还将提供字符串中的单词数。

于 2013-06-06T00:21:49.603 回答
1

如何在 if 语句中检测字符串是否由多个单词组成?

if(count(explode(' ', $str)) > 0) { echo 'sentence'; }

为什么我上面的代码没有将句子分成带有单词的数组?

代码应该可以工作。我得到(在回声中添加换行符后):

the
quick
brown
fox
jumped
over
the
lazy
dog
于 2013-06-05T23:35:36.233 回答
0

您的代码应该可以正常工作,以检查您是否需要检查多个单词,如下所示

$input = "the quick brown fox jumped over the lazy dog";

$sentence = explode(" ", $input);

echo "<pre>";
var_dump($sentence);
echo "</pre>";


if(count($sentence)){
echo "we have more than one word!";
}
于 2013-06-05T23:38:53.237 回答
-1

要检查是否有空格,您可以使用正则表达式,例如:

$spaces = preg_match('/ /',$input);

这应该返回 1 或 0,具体取决于是否有空格。

if( $spaces == 1 )
  // there is more than one word
else
  // there is only one word with no spaces

除此之外,您的代码看起来没有错误。

于 2013-06-05T23:37:13.567 回答
-1

这是它的一些伪代码:

String input = "The quick brown fox jumped over the lazy dog"

Array[] words = String.split(input,' ');
if(words.length > 1)

print " more than 1 word"

else

print "1 word"
于 2013-06-05T23:37:15.597 回答