有谁知道为什么这个功能编辑 http://php.net/manual/en/function.levenshtein.phpPHP 有 255 个字符的限制吗?
这是该函数的 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];
}
https://en.wikibooks.org/wiki/Algorithm_Implementation/Strings/Levenshtein_distance#PHP https://en.wikibooks.org/wiki/Algorithm_Implementation/Strings/Levenshtein_distance#PHP
PHP 的版本名为levenshtein()
PHP 从 4.0.1 版本开始到 255 个字符长度。
我认为引入限制是为了将性能和持续时间保持在最可接受的范围内。
如果您需要长度 > 255 的字符串比较,您可以使用上面的实现。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)