Резюме
Я пытаюсь найти процент совпадения имен в php, но перед этим мне нужно переставить слова в строке в соответствии с 1-й строкой.
О чем исходный код?
У меня есть две строки.Сначала я добавляю обе строки в массив, если в строке найдено пространство, добавляю его в массив.$ 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);
Случай 1:
Ввод
DatabaseName = Jardine Lloyd Thompson
BankName = Thompson Jardine Lloyd
Выход
Ожидаемый выход = Jardine Lloyd Thompson
Случай 2: ##
Ввод
DatabaseName = Jardine Lloyd Thompson
BankName = Thoapson Jordine Llayd
Если слова не найденыв указанном выше имени_базы_данных ожидаемый поиск будет основываться на слованском алгоритмическом слове с меньшим расстоянием, которое будет рассматриваться как ключ
Выход
ExpectedOutput = Джордин Ллэйд Тоапсон
Описание проблемы
Обновление вопроса
Когда пользовательский ввод $bankdata
содержит больше слов, оставшихся несопоставимыми, мне нужно добавить их в конец.