คำนวณระยะทาง Levenshtein ระหว่างสองสาย:
<?php เสียงสะท้อน เลเวนชไทน์ ( " สวัสดี ชาวโลก " , " สวัสดีชาวโลก " ) ; " <br> " ; เลเวนชไทน์ ( " สวัสดี ชาวโลก " , " สวัสดีชาวโลก " , 10 , 20 , 30 ) ;ฟังก์ชัน levenshtein() ส่งกลับค่าระยะห่างของ Levenshtein ระหว่างสองสตริง
ระยะทาง Levenshtein หรือที่เรียกว่าระยะทางแก้ไข หมายถึงจำนวนขั้นต่ำของการดำเนินการแก้ไขที่ต้องการระหว่างสองสายเพื่อแปลงสายหนึ่งเป็นอีกสายหนึ่ง การดำเนินการแก้ไขที่ได้รับอนุญาต ได้แก่ การแทนที่อักขระหนึ่งด้วยอักขระอื่น การแทรกอักขระ และการลบอักขระ
ตามค่าเริ่มต้น PHP ให้น้ำหนักเท่ากันกับทุกการดำเนินการ (การแทนที่ การแทรก และการลบ) อย่างไรก็ตาม คุณสามารถกำหนดต้นทุนของการดำเนินการแต่ละรายการได้โดยการตั้งค่าพารามิเตอร์การแทรก แทนที่ และลบที่เป็นทางเลือก
หมายเหตุ: ฟังก์ชัน levenshtein() ไม่คำนึงถึงขนาดตัวพิมพ์
หมายเหตุ: ฟังก์ชัน levenshtein() จะเร็วกว่าฟังก์ชันlike_text() อย่างไรก็ตาม ฟังก์ชันlike_text() จะให้ผลลัพธ์ที่แม่นยำยิ่งขึ้นโดยไม่จำเป็นต้องแก้ไขน้อยลง
levenshtein( string1,string2,แทรก,แทนที่,ลบ )
พารามิเตอร์ | อธิบาย |
---|---|
สตริง1 | ที่จำเป็น. สตริงแรกที่จะเปรียบเทียบ |
สตริง2 | ที่จำเป็น. สตริงที่สองที่จะเปรียบเทียบ |
แทรก | ไม่จำเป็น. ค่าใช้จ่ายในการใส่ตัวอักษร ค่าเริ่มต้นคือ 1 |
แทนที่ | ไม่จำเป็น. ค่าใช้จ่ายในการเปลี่ยนตัวละคร ค่าเริ่มต้นคือ 1 |
ลบ | ไม่จำเป็น. ค่าใช้จ่ายในการลบตัวละคร ค่าเริ่มต้นคือ 1 |
ค่าส่งคืน: | ส่งกลับระยะห่าง Levenshtein ระหว่างสตริงอาร์กิวเมนต์ทั้งสอง หรือ -1 ถ้าสตริงใดสตริงหนึ่งยาวเกิน 255 อักขระ |
---|---|
เวอร์ชัน PHP: | 4.0.1+ |