1

さて、私は次のデータを持っています:

liagel - ag、el、li、age、gel、lia

そして、文字列の完全一致を取得する方法を見つけようとしています。すべての単語が文字列に存在することがわかりますが、この方法でフィルタリングしたいので、最終結果は次のようになります。

リアジェル=リアジェル

ありがとう。

4

1 に答える 1

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;
    }
}
于 2013-07-15T08:38:35.237 に答える