2012-01-20 7 views
1

PHPやMYSQLでどのように類似した単語をグループ化したり分離したりできるか考えていました。私は、SAMSUNG Glaxyエースを持っているように例えば、これはS120S120、S120S120を認識することが可能です。PHP - 類似の単語でグループ化する

これも可能ですか?

ありがとうございました

答えて

4

あなたができることは、英数字以外の文字とスペースをすべて削除し、strtoupper()は文字列を削除することです。

$new_string = preg_replace("/[^a-zA-Z0-9]/", "", $string); 
$new_string = strtoupper($new_string); 
+1

そして、あなたは複雑なアルゴリズムの熱心であれば、試してください[Damerau-Levenstein](http://en.wikipedia.org/wiki/Damerau% E2%80%93Levenshtein_distance) – J0HN

+0

@ J0HN実際には素晴らしいアルゴリズムです。 –

+2

と[PHP関数](http://www.php.net/manual/en/function.levenshtein.php) – Herbert

2

これらはどれですか?簡単に。

/S-?120/i 

しかし、拡張したい場合は、おそらくREGEXからもう少し洗練されたものに移行する必要があります。

2

ここで行うべき最もよいことは、フォーマットを選択して標準化することです。したがって、あなたの例では、単にS120を保存し、ユーザーから値を取得したら、英数字以外の文字をすべて取り除いて大文字に変換します。あなたはこのコードをPHPでこれを行うことができます

$result = strtoupper(preg_replace('/(\W|_)+/', '', $userInput)); 
+0

ありがとうございました。それはとてもうまくいった。 –

関連する問題