2013-04-21 59 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

相关问题