PHPで文字間の距離を測る関数「similar_text」が便利
2009年07月13日-
スポンサード リンク
PHP: similar_text - Manual
PHPで文字間の距離を測る関数「similar_text」が便利。
私はずっとこの関数の存在を知らなかったのですが、similar_textという関数がPHP4から標準で存在するようでした。
使い方は簡単で、similar_text( 文字列1 , 文字列2, 類似度 ); のように実行すると、マッチした文字の数が返るみたいです。
例えば、サンプルコードを見てみましょう
$words = array(
'psp', 'javascript', 'php', 'spot', 'twitter'
);
$matches = array();
foreach ($words as $word) {
$c = similar_text('phpspot', $word, $percent);
echo 'phpspot と '.$word.' は '.intval($percent).'% 類似('.$c.'文字一致)しています。';
echo "n";
$matches[intval($percent)] = $word;
}
echo "類似度順に表示nn";
krsort($matches);
print_r($matches);
出力結果
phpspot と psp は 60% 類似(3文字一致)しています。
phpspot と javascript は 23% 類似(2文字一致)しています。
phpspot と php は 60% 類似(3文字一致)しています。
phpspot と spot は 72% 類似(4文字一致)しています。
phpspot と twitter は 14% 類似(1文字一致)しています。
類似度順に表示
Array
(
[72] => spot
[60] => php
[23] => javascript
[14] => twitter
)
サンプルは英語で比較していますが、日本語でも問題なく利用できました。
類似文字の候補表示やる類似検索に使うことが出来ますね。検索エンジンでおなじみの、「〜〜ではありませんか?」といったものにも使えそうです。
標準でこういう関数を入れてくるところがPHPの色々な意味ですごい所ですね。
2年まえの2007年に既にエントリで書いてる方が居るようでした。
関連エントリ
スポンサード リンク
Advertisements
SITE PROFILE
最新のブログ記事(新着順)
- CSSで太陽が差し込むようなアニメーション実装
- 可愛くアニメーションする「beautifully crafted animated icons」
- アイソメトリックなアイコンがアイコンがPNG,SVGでゲットできる「Isoicons」
- ユニークなカタカナフォントtorisippo
- 美しいメッシュグラデーションをCSSで簡単に取得できる「MSHR」
- TailwindCSSなサイトで使える100以上のアニメーションエフェクト「animata」
- SVG形式のテック系企業のロゴを簡単にゲットできる「Svgl」
- 統一感のある色味を一括生成できるツール「The good colors」
- くちばしフォント【商用可】
- 小説表紙などに使えそうな商用可なフォント「になロマン」
- 過去のエントリ