mar*_*oli 8 php function levenshtein-distance
有谁知道为什么PHP中的函数levenshtein有255个字符的限制?
这是该函数的 PHP 完整实现。正如您所看到的,有基于字符串字符长度的嵌套循环:
Run Code Online (Sandbox Code Playgroud)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]; }
https://en.wikibooks.org/wiki/Algorithm_Implementation/Strings/Levenshtein_distance#PHP
PHP 中命名的 PHP 版本levenshtein()从版本 4.0.1 开始到 255 个字符长度。
我认为引入限制是为了将性能和持续时间保持在最可接受的范围内。
如果您需要长度 > 255 的字符串比较,您可以使用上面的实现。