I want to display Did you mean alternative when user searches for incorrect word. This code works, but some results are irrelevant. Example: I have an apple record in my table. If user searches for apple1 result is: Did you mean apple?, but if user searches for aple result is: Did you mean Dole? Is there any way to display more relevant results? Here is a code:
$search = $_GET ['search'];
$results = array();
foreach ($db->query("SELECT id FROM table") as $name) {
$results[] = $name['id'];
}
$shortest = -1;
foreach ($results as $word) {
$lev = levenshtein($search, $word);
if ($lev <= $shortest || $shortest < 0) {
$closest = $word;
$shortest = $lev;
}
}
echo $closest;