【发布时间】:2019-01-19 13:09:24
【问题描述】:
总结
我正在尝试在 php 中查找名称匹配百分比,但在此之前我需要根据第一个字符串重新排列字符串中的单词。
源代码是关于什么的?
我有两个字符串。首先,如果在字符串中找到空间,我将两个字符串都添加到数组中,将其添加到数组中。 $arraydataBaseName 和 $arraybankData 来自我的第一个数组,即 $arraydataBaseName 我正在搜索 $arraybankData 的所有值并获取密钥。我得到了正确的键排列,但无法将它们特定位置的值排列到新数组中。
$dataBaseName = "Jardine Lloyd Thompson";
$bankdata = "Thompson Thompson Jardine";
$replacedataBaseName = preg_replace("#[\s]+#", " ", $dataBaseName);
$replacebankData = preg_replace("#[\s]+#", " ", $bankdata);
$arraydataBaseName = explode(" ",$replacedataBaseName);
$arraybankData = explode(" ",$replacebankData);
echo "<br/>";
print_r($arraydataBaseName);
$a="";
$i="";
$arraysize = count($arraydataBaseName);
$push=array();
for($i=0;$i< $arraysize;$i++)
{
if(array_search($arraybankData[$i],$arraydataBaseName)>0)
{
${"$a$i"} = array_search($arraybankData[$i],$arraydataBaseName);
//echo ${"$a$i"};
array_push($push,${"$a$i"});
}
}
print_r($push);
案例一:
输入
数据库名称 = Jardine Lloyd Thompson
银行名称 = Thompson Jardine Lloyd
输出
预期输出 = Jardine Lloyd Thompson
案例2:##
输入
数据库名称 = Jardine Lloyd Thompson
银行名称 = Thoapson Jordine Llayd
如果在上面的 DatabaseName 中没有找到单词,那么预期的搜索将基于 Leventish 算法单词,该单词的距离较小,将被视为键
输出
预期输出 = Jordine Llayd Thoapson
问题更新
当用户输入 $bankdata 包含更多无法匹配的单词时,我需要将它们附加到末尾。
【问题讨论】:
-
@Quasimodo'sclone 我已经成功通过比较 $bankdata 和 $dataBaseName 来获得单词的位置
-
很好的作业!是否涉及真正的数据库?
-
@Quasimodo'sclone 不只是变量名
-
@Quasimodo'sclone 是的,我能够轻松地找出距离。排列单词是我卡住的一步
标签: php fuzzy-logic fuzzywuzzy