过滤,搜索字符串中的单词

时间:2013-07-15 07:27:43

标签: php string filter

好的,我有以下数据:

  
  • liagel - ag,el,li,age,gel,lia

  • 我试图找到一种方法来获得字符串的完全匹配,你会发现字符串中存在所有单词,但我想以这种方式过滤它,所以我得到的最终结果是:

      

    liagel = lia gel

    感谢。

    1 个答案:

    答案 0 :(得分:1)

    解决方案:

    我使用PEAR http://pear.php.net/package/Math_Combinatorics/中的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;
        }
    }