针对字符串 123abc456 ,如何在数据库中查找最相似的字符串匹配项。
方法
读取数据库,赋值给数组,使用distinct关键词去除数据库重复项。
1 |
$array_number_1 = $db->rawQuery('SELECT distinct part_number_1 from get_torrent ORDER BY dmm_id DESC'); |
构建函数,通过for循环,遍历数组,在循环内部使用 strchr() 函数比对字符串相似,并返回匹配值。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
function search_dmm_id($dmm_id,$array_number_1){ // echo $dmm_id; // echo count($array_number_1); for ($i = 1; $i <= count($array_number_1); $i++) { // echo $i; // echo '<br>'; if(strchr($dmm_id,strtolower($array_number_1[$i-1]["part_number_1"])) == TRUE){ // echo $array_number_1[$i-1]["array_number_1"]; // echo '<br>'; return strtolower($array_number_1[$i-1]["part_number_1"]); } } return false; } |
外部直接调用函数查找数据库匹配
1 |
$part_number_1 = search_dmm_id($dmm_id,$array_number_1); |
缺点
- 数据库中不能有非常模糊的值,否则每次匹配都会成功
- 若有多个匹配项,需要更进一步进行处理
There are no comments yet