【PHP8.x】levenshtein関数の使い方

作成日: 更新日:

levenshtein関数は、2つの文字列間の類似度を数値で示す「レーベンシュタイン距離」を計算する関数です。レーベンシュタイン距離とは、ある文字列を別の文字列に変換するために必要な、単一文字の挿入、削除、または置換といった操作の最小回数を指します。この距離の値が小さいほど、比較対象の2つの文字列はより似ていると判断できます。

この関数は、主にスペルチェック機能の実装や、入力されたキーワードの曖昧なマッチングを行う際などに非常に役立ちます。例えば、ユーザーが「aple」と入力した場合に、最も近い「apple」を提案するといった用途に利用できます。

levenshtein関数は、まず比較したい最初の文字列と二番目の文字列を必須の引数として受け取ります。さらに、オプションとして、文字の挿入、置換、削除にかかるコストをそれぞれ個別の整数値で指定することも可能です。これにより、特定の操作に対して異なる重み付けを行い、より柔軟な類似度計算を行うことができます。

関数は計算されたレーベンシュタイン距離を整数値で返します。文字列の長さが255文字を超える場合や、その他の無効な引数が与えられた場合には、エラーを示す-1が返される点に注意が必要です。PHP 8環境において、文字列の類似度を効率的に評価するための強力なツールとして活用できます。

基本的な使い方

構文(syntax)

<?php
$string1 = "kitten";
$string2 = "sitting";
$distance = levenshtein($string1, $string2);
?>

引数(parameters)

string $string1, string $string2, int $insertion_cost = 1, int $replacement_cost = 1, int $deletion_cost = 1

  • string $string1: 比較対象となる最初の文字列
  • string $string2: 比較対象となる2番目の文字列
  • int $insertion_cost = 1: 文字列1から文字列2へ挿入する際のコスト(デフォルトは1)
  • int $replacement_cost = 1: 文字列1の文字を文字列2の文字へ置換する際のコスト(デフォルトは1)
  • int $deletion_cost = 1: 文字列1から文字を削除する際のコスト(デフォルトは1)

戻り値(return)

int

levenshtein関数の戻り値は、2つの文字列のレーベンシュタイン距離を表す整数です。レーベンシュタイン距離とは、一方の文字列をもう一方の文字列に変換するために必要な、挿入、削除、置換の最小回数を示します。

【PHP8.x】levenshtein関数の使い方 | いっしー@Webエンジニア