- min: documentation ( source)
<?php
function levenshteinDistance($a, $b) {
$matrix = array(count($a) + 1);
for ($i=0; $i<count($a)+1; $i++) {
$matrix[$i] = array(count($b) + 1);
}
for ($i=0; $i<count($a)+1; $i++) {
$matrix[$i][0] = $i;
}
for ($j=0; $j<count($b)+1; $j++) {
$matrix[0][$j] = $j;
}
for ($i=1; $i<count($a)+1; $i++) {
for ($j=1; $j<count($b)+1; $j++) {
$x = $a[$i - 1] == $b[$j -1] ? 0 : 1;
$matrix[$i][$j] = min(
$matrix[$i - 1][$j] + 1,
$matrix[$i][$j - 1] + 1,
$matrix[$i - 1][$j- 1] + $x
);
}
}
return $matrix[count($a)][count($b)];
}
echo levenshteinDistance("att","bba");
?>