2013-06-05 115 views
0

如何檢查字符串是多字還是單字?檢查if語句中是否有多字字符串

我試圖通過分割一個空格,所以如果它是一個單詞,數組中只會有一個單詞,如果有更多的話,那麼它們將全部在數組中。

但是,當我嘗試拆分一個空間並運行該數組時,我沒有輸出。

下面是代碼:

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

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

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

以上是給我任何輸出。

所以,我有2個問題:

  1. 我怎麼能檢測一個字符串if語句由多個單詞在?
  2. 爲什麼我的上面的代碼不能將這個句子拆分成一個包含單詞的數組?
+0

你的代碼沒有錯誤,所以我不知道... –

+0

代碼,因爲,工作正常。從實施到你的問題,你一定已經失去了一些東西。 –

+0

代碼正常工作 – Scuzzy

回答

4

有不運行這個或hek2mgl的解決方案之間的指標,但這應該更快:

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

此外,如上所述在評論中編輯,您發佈的代碼按預期工作。

+1

更重要的部分是,它更容易理解代碼的意圖。 – alex

+0

@alex:同意。這就是爲什麼當我看到如下一行時,我總是蜷縮在胎兒位置:'$ unicorns = array_flip(array_keys(array_intersect_keys(array_flip($ arr1),$ arr2));'' –

1

如何檢測字符串是否由if語句中的多個單詞組成?

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

爲什麼不是我上面的代碼把句子與字的陣列?

該代碼應該工作。我得到了(加入新行回聲後):

the 
quick 
brown 
fox 
jumped 
over 
the 
lazy 
dog 
-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 

除此之外,您的代碼看起來沒有錯誤。

+1

沒有必要使用正則表達式來搜索單個字符。 – Paulpro

+0

他們要求一種方法來檢查輸入中是否有多個單詞。這是一個可行的方法。 – dremme

+0

確實如此,爲什麼我沒有downvote。但是'$ spaces = preg_match('/ /',$ input);'實際上只是'$ spaces = strpos($ input,'')!== false'的一個緩慢版本,我會贊成。 – Paulpro

-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" 
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!"; 
} 
1

作爲參考也有str_word_count($string)這也將提供一個字符串內的單詞的數量。