sca*_*dge 3

这是该函数的 PHP 完整实现。正如您所看到的,有基于字符串字符长度的嵌套循环:

function lev($s,$t) {
  $m = strlen($s);
  $n = strlen($t);

  for($i=0;$i<=$m;$i++) $d[$i][0] = $i;
  for($j=0;$j<=$n;$j++) $d[0][$j] = $j;

  for($i=1;$i<=$m;$i++) {
    for($j=1;$j<=$n;$j++) {
      $c = ($s[$i-1] == $t[$j-1])?0:1;
      $d[$i][$j] = min($d[$i-1][$j]+1,$d[$i][$j-1]+1,$d[$i-1][$j-1]+$c);
    }
  }

  return $d[$m][$n];
}
Run Code Online (Sandbox Code Playgroud)

https://en.wikibooks.org/wiki/Algorithm_Implementation/Strings/Levenshtein_distance#PHP

PHP 中命名的 PHP 版本levenshtein()从版本 4.0.1 开始到 255 个字符长度。

我认为引入限制是为了将性能和持续时间保持在最可接受的范围内。

如果您需要长度 > 255 的字符串比较,您可以使用上面的实现。