levenshtein関数

攻撃判定を出力するスクリプトの文字列で $attack_judgement という文字列が使用されていたのですが、最後の方の肝心な記述で$attack_judgment と打たれているミスがありまして、なかなか発見できませんでした…PHPって使ってない文字列を突然使用しても空っぽのままエラーにならず通っちゃうんですね。

そこでスペルミス修正に使えそうな関数があるようなので調べました。

int levenshtein ( string $str1 , string $str2 )

int levenshtein ( string $str1 , string $str2 , int $cost_ins , int $cost_rep , int $cost_del)

レーベンシュタイン距離:文字列str1がstr2になるまでに必要な数が出力できます。

$str1 :ミスっている方の文字列

$str2 :目的となる正しい文字列

下の引数はまとめて省略するか、全部入れるかのどちらか

$cost_ins :挿入のコスト

$cost_rep :置換のコスト

$cost_del :削除のコスト  

<?php
    $result = levenshtein( "judgement", "judgment" , 1, 2, 3) ;
    var_dump( $result ) ;
>

結果
int(3)

スペルミスには気をつけよう!