我已经在模型中编写了这些函数(我正在使用 CodeIgniter)。
function getLocalIngrdname()
{
$this->load->database();
$query = $this->db->get('onl_local_ingrd');
foreach($query->result() as $row)
$allingrd[]=$row->ingrd_localname;
return $allingrd;
}
function getCloseIngrdname($ingrdname,$localname)
{
$this->load->database();
$query = $this->db->get('onl_ingrd');
foreach($query->result() as $row)
$allingrd[]=$row->ingrd_name;
foreach($localname as $row)
$allingrd[]=$row;
$shortest=-1;
foreach ($allingrd as $ingrd) {
$lev = levenshtein($ingrdname, $ingrd);
if ($lev <= $shortest || $shortest < 0) {
$closeword = $ingrd;
$shortest = $lev;
}
}
return $closeword;
}
此功能在控制器中
函数获取结果() { $this->load->model('searchRecipe_model'); $ingrdname = $this->input->post('ingrdname'); $输出[]=2; $localnames[]=$this->searchRecipe_model->getLocalIngrdname(); $output[]=$this->searchRecipe_model->getCloseIngrdname($ingrdname,$localnames); 回声 json_encode($localnames); }
$allingrd
是一组成分名称。我$closeword
在 javascript 中显示警报消息。如果我给$lev=levenshtein($ingrdname,$allingrd[0])
它完美的工作;但是,它不在循环中工作。关于为什么的任何想法?提前致谢。