PHP - levenshtein
Třída
Metoda - levenshtein
(PHP 4 >= 4.0.1, PHP 5, PHP 7)
Funkce levenshtein()
počítá Levenštejnovu vzdálenost mezi
dvěma řetězci. Ta je definována jako minimální počet znaků, které je
nutné změnit, přidat nebo odebrat, aby byly oba řetězce stejné. Popisuje
tedy jak moc se od sebe liší. Časové složitost algoritmu je O(m * n), kde
m
a n
jsou délky řetězců. Funkce je
efektivnější než funkce similar_text()
.
Procedurální
- function levenshtein (string $str1, string $str2, int $cost_ins, int $cost_rep, int $cost_del) : int
- function levenshtein (string $str1, string $str2, int $cost_ins, int $cost_rep, int $cost_del) : int
Parametry
Název | Datový typ | Výchozí hodnota | Popis |
---|---|---|---|
$str1 | string | První řetězec pro porovnávání. | |
$str2 | string | Druhý řetězec pro porovnávání. | |
$cost_ins | int | Definuje cenu vložení znaku. | |
$cost_rep | int | Definuje cenu náhrady znaku. | |
$cost_del | int | Definuje cenu odstranění znaku. |
Návratové hodnoty
Vrací: int
Vrací Levenštejnovu vzdálenost mezi dvěma zadanými řetězci nebo -1, pokud jeden z argumentů přesahuje limit 255 znaků.
Příklady
<?php
echo levenshtein('Honza', 'Hons a'); // 1 vložení + 1 náhrada znaku = vrací 2
echo '<br>';
echo levenshtein('Honza', 'Hons a', 5, 3, 1); // 1 vložení (5) + 1 náhrada (3) = vrací 8
Související manuály
- function similar_text (string $first, string $second, float &$percent) : int