我有两个叮咬:
$var_x = "Depending structure";
$var_y = “Depending on the structure of your array ";
您能否告诉我如何找到var_y中var_x中有多少单词? 为此,我做了以下事情:
$pieces1 = explode(" ", $var_x);
$pieces2 = explode(" ", $var_y);
$result=array_intersect($pieces1, $pieces2);
//Print result here?
但是这并没有显示var_y
中有多少var_x字答案 0 :(得分:5)
使用explode()
将给定字符串拆分为单词是错误的。
世界并不完美,你不能确保每个单词都用空格分隔。
请参阅以下内容:
"This is a test sentence"
- 爆炸中的4个单词,“test \ nsentence”是一个单词。
以上示例仅表明使用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,您将看到您的explode()方法返回相同的值。但在不同的复杂情况下,上述方法会给出正确的字数(另请注意array_unique()
使用)