首頁  >  文章  >  後端開發  >  php傳回兩個字串之間距離的函數levenshtein()

php傳回兩個字串之間距離的函數levenshtein()

黄舟
黄舟原創
2017-11-02 13:08:341217瀏覽

實例

計算兩個字串之間的Levenshtein 距離:

<?php
echo levenshtein("Hello World","ello World");
echo "<br>";
echo levenshtein("Hello World","ello World",10,20,30);
?>

#定義和用法

levenshtein() 函數傳回兩個字串之間的Levenshtein距離。

Levenshtein 距離,又稱編輯距離,指的是兩個字串之間,由一個字串轉換成另一個字串所需的最少編輯操作次數。許可的編輯操作包括將一個字符替換成另一個字符,插入一個字符,刪除一個字符。

在預設情況下,PHP 給每個操作(替換、插入和刪除)相同的權重。然而,您可以透過設定可選的 insert、replace、delete 參數,來定義每個操作的代價。

註解:levenshtein() 函數是不區分大小寫的。

註解:levenshtein() 函數比 similar_text() 函數更快。不過,similar_text() 函數透過更少的必需修改次數提供更精確的結果。

文法

levenshtein(string1,string2,insert,replace,delete)

參數              說明

string1         必要。要比較的第一個字串。    

string2         必要。要比較的第二個字串。    

insert           可選。插入一個字元的代價。預設是 1。    

replace        可選。替換一個字元的代價。預設是 1。    

delete         可選。刪除一個字元的代價。預設是 1。    

技術細節

傳回值:          傳回兩個參數字串之間的 Levenshtein 距離,如果其中一個字串超過 255 個字符,則傳回 -1。

PHP 版本:      4.0.1+    

如果其中一個字串超過255 個字符,levenshtein()函數返回-1。
levenshtein() 函數對大小寫不敏感。
levenshtein() 函數比 similar_text() 函數更快。不過,similar_text() 函數提供需要更少修改的更精確的結果。
範例

<?php
    echo levenshtein("Hello World","ello World");
    echo "<br />";
    echo levenshtein("Hello World","ello World",10,20,30);
    ?>

輸出:

 1 30

以上是php傳回兩個字串之間距離的函數levenshtein()的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn