2013-07-15 179 views
1

好吧,我有以下數據:過濾器,在字符串搜索詞

liagel - AG,薩爾瓦多,李,年齡,凝膠,LIA

,我試圖找到一種方法得到的字符串完全匹配,您看到字符串中存在的所有的話,但我想這種方式篩選它因此最終的結果是我得到的是:

liagel = LIA凝膠

謝謝。

+0

是在比賽將要在2段 – DevZer0

+0

一直在做,我不認爲我將有一個字符串內超過3個字。另一個例子是anarad - ad,an,ar,na,ana,rad ...並且可能會有超過1個結果。 – krasenslavov

+0

這個例子也與2個元素匹配 – DevZer0

回答

1

解決方案:

我發現了一個快速簡便的解決方案通過使用PEAR http://pear.php.net/package/Math_Combinatorics/數學組合數學庫(類創建可從關鍵字的所有變化,那麼我這些變化對我的原始字符串匹配和得到我的最終結果)。簡單的代碼(2個字)是這樣的:

require_once 'library/Combinatorics.php'; 
$c = new Math_Combinatorics; 

$words = array('ag', 'el', 'li', 'age', 'gel', 'lia'); 
$string = 'liagel'; 

foreach($c->permutations($words, 2) as $p) { 

    $tmp_word = join('', $p); 
    $tmp_word_2 = join(' ', $p); 

    if ($tmp_word == $string) { 

     $found[$string] = $tmp_word_2; 
    } 
}