Припустимо, у вас є масив слів, і ви хочете знайти ті, які максимально схожі на вхідне слово.
<?php
// Масив слів для пошуку
$words = ["apple", "apply", "ape", "maple", "snapple", "pineapple", "ample"];
// Слово, з яким порівнюємо
$search = "apple";
// Максимальна допустима відстань Левенштейна для схожості
$maxDistance = 3;
$similarWords = [];
foreach ($words as $word) {
// Обчислюємо відстань Левенштейна між пошуковим словом і поточним словом
$distance = levenshtein($search, $word);
// Якщо відстань менша або рівна maxDistance, додаємо у результати
if ($distance <= $maxDistance) {
$similarWords[$word] = $distance;
}
}
// Сортуємо за зростанням відстані (чим менше — тим схожіше)
asort($similarWords);
// Виводимо результати
echo "Слова, схожі на '{$search}':\n";
foreach ($similarWords as $word => $distance) {
echo "- {$word} (відстань: {$distance})\n";
}
?>Як це працює:- Скрипт порівнює кожне слово з масиву з пошуковим словом.
- Обчислює відстань Левенштейна — кількість змін, які потрібно зробити, щоб перетворити одне слово в інше.
- Виводить слова, які відрізняються не більше ніж на $maxDistance символів.