php levenstein与id的组合框的相似性

时间:2015-12-21 19:02:59

标签: php combobox words levenshtein-distance

我试图在一个组合框中做一个巧合,其中列出了一个类别列表,其中第一个类似的单词可以在寄存器中找到,例如:

输入引用:"太阳太棒了,没有人能直接看到它"

爆炸数组中的每个单词""," sun"等...

在具有相似名称的类别中找到该词:category" great"

直到它没问题,但该类别有一个ID,所以...我怎么能与ID重合,因为它找到了这个单词,但总是保存第一个类别id。

这是我的代码:(由@Mike编辑)

ArrayList

但我获得的是所有这些引用的相同类别,当每个引号必须具有不同的>> category quotes

1 个答案:

答案 0 :(得分:1)

您似乎想要一个while循环,但正在使用do循环。这会更好吗?

<?php

$rows = mysql_num_rows($RecordsetCategory);
if($rows > 0) {
    mysql_data_seek($RecordsetCategory, 0);

    while ($row_RecordsetCategory = mysql_fetch_assoc($RecordsetCategory)) { 
        $input = $row_RecordsetCategory['category'];

        $chain = $quote;
        $array = explode(" ", $quote);
        $words  = $array;

        $shortest = -1;

        foreach ($words as $word) {
            $lev = levenshtein($input, $word);
            if ($lev == 0) {
                $closest = $word;
                $shortest = 0;
                break;
            }
            if ($lev <= $shortest || $shortest < 0) {
                $closest  = $word;
                $shortest = $lev;
            }
        }

        ?><option value="<?php echo $row_RecordsetCategory['id']?>"><?php echo $closest;?></option><?php
    }

}

我不能说我完全理解你在做什么,但你想要在操作查询结果之前执行查询。