2016-02-27 255 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

相關問題