2013-04-21 60 views
1

我有兩個刺:如何查找兩個字符串中的相似字數?

$var_x = "Depending structure"; 
$var_y = 「Depending on the structure of your array "; 

能否請你告訴我,我怎麼能發現多少單詞var_x是var_y? 爲了做到這一點,我做了以下內容:

$pieces1 = explode(" ", $var_x); 
$pieces2 = explode(" ", $var_y); 
$result=array_intersect($pieces1, $pieces2); 
//Print result here? 

但這並沒有顯示出許多有多少var_x詞在var_y

回答

5

使用explode()拆分給字串的話是錯誤的。 世界並不完美,您無法確定每個單詞都會被空格分隔。

參見下面的行:

  • 「這是一個測試句子」 - 從爆炸()
  • 5個字「這是一個測試句子沒有一個字。」 - 8個字,你會得到「句子」。作爲一個詞。
"This is a test 

sentence" 

- 從爆炸, 「測試\ nsentence」 4個字是一個字。

以上示例僅表明使用explode()顯然是錯誤的。 使用str_word_count()

$var_x = "Depending structure"; 
$var_y = "Depending on the structure of your array "; 
$pieces1 = str_word_count($var_x, 1); 
$pieces2 = str_word_count($var_y, 1); 
$result=array_intersect(array_unique($pieces1), array_unique($pieces2)); 
print count($result); 

這將(INT)2,你會看到你的爆炸()方法返回的值相同。但在不同的和複雜的情況下,上面的方法會給出正確的字數(另請注意array_unique()使用)

+0

很好的答案@Ayesh – 2013-04-21 17:33:32

+0

謝謝@WayneTunMyint。 – 2013-04-21 18:39:17

+0

@AyeshK非常感謝您向我詳細解釋。這非常有幫助。 ස්තුති – 2013-04-22 08:03:05

相關問題