2016-02-27 137 views
1

我有两个字符串我想比较并返回找到的出现次数。比较两个字符串并找到多个匹配

例如。

$string = "123,456,789"; 

$find = "123,657,456"; 

有了这个应该回到 “2”

我已经试过

echo substr_count($string,$find); 

它返回 “0”,但如果$找到=右侧功能 “123”,那么它将返回“1”

我知道我可以做到这一点,如果我使用循环,并单独检查每3位数字,但我想避免使用循环来允许可读性(我已经使用了很多循环)。

如果这可能与任何现有的功能或一个内衬?或者我将不得不创建我自己的帮助函数或循环?

回答

2

易于使用数组:

echo count(array_intersect(explode(',', $string), explode(',', $find))); 
+0

真棒,正是我需要的。 在没有分隔符的情况下,我将如何能够做同样的事情? – Moj123

+0

@moj如果没有分隔符,你如何区分这些数字? –

+0

@HankyPanky我不确定。 如果我的查找字符串是3个字符,但AbraCadaver提供的代码完美,但有时它们是两个,并且不会找到任何内容。 – Moj123