เปรียบเทียบตัวอักษร similar_text()
หน้าแรก PHP MySQL เกร็ดความรู้ เปรียบเทียบตัวอักษร similar_text()
ฟังก์ชัน similar_text() รับพารามิเตอร์ 2 ตัว เป็นสตริงทั้ง 2 ตัว เพื่อใช้เปรียบเทียบกันว่ามีความเหมือนว่าเหมือนกันกี่ตัวอักษร ส่วนพารามิเตอร์ที่ 3 เป็น optional คือ จะใส่มาหรือไม่ใส่ก็ได้ ถ้าใส่มา ฟังก์ชันนี้จะคำนวนเปอร์เซ็นต์มาให้ว่าเหมือนกันกี่เปอร์เซ็นต์
| Code |
| int similar_text( string $first, string $second[, float &$percent ] ) |
สิ่งที่ฟังก์ชัน similar_text() ทำให้เราได้
อันดับแรกต้องรู้ว่าฟังก์ชันนี้ สามารถทำให้เราได้ 2 อย่าง คือ
1.เปรียบเทียบข้อความ 2 ข้อความว่าเหมือนกันกี่อักขระ (Character) นี่คือจุดประสงค์หลักของฟังก์ชันนี้
2.หาความเหมือนของข้อความ 2 ข้อความออกมาเป็นเปอร์เซ็นต์ (%) นี่คือจุดประสงค์รองของฟังก์ชันนี้
ตัวอย่างการใช้ฟังก์ชัน similar_text()
มาดูตัวอย่างการใช้งานฟังก์ชัน similar_text() เพื่อเปรียบเทียบข้อความกันครับ
1.เปรียบเทียบว่าเหมือนกันกี่อักขระ
| Code |
| $number = similar_text("Test", "Test2"); echo $number; |
ฟังก์ชันจะคืนค่าเป็น int. จากตัวอย่าง ผลลัพธ์จากการ echo จะได้เป็น 4 เพราะข้อความ Test กับ Test2 เหมือนกันอยู่ 4 อักขระ
มีข้อที่ควรสังเกต คือ ฟังก์ชันนี้ เป็นฟังก์ชันที่ case sensitive โดยมองว่า อักขระตัวใหญ่ กับอักขระตัวเล็ก (ภาษาอังกฤษ) เป็นคนละตัวกัน ดังนั้น หากเปรียบเทียบคำว่า Test กับ test จะให้ผลลัพธ์ออกมาเป็น 3 คือเหมือนกัน 3 อักขระ (เหมือนตรง est ส่วน T กับ t ไม่นับว่าเหมือนกัน) เมื่อทราบดังนี้ หากเราต้องการบังคับลงไปว่า Test กับ test ให้ถือว่าเหมือนกัน ก็ต้องแปลงสตริงให้เป็น case เดียวกันก่อนจึงค่อยส่งค่าเข้าฟังก์ชัน โดยใช้ฟังก์ชัน strtoupper() เพื่อแปลงสตริงเป็นอักขระตัวใหญ่ หรือใช้ฟังก์ชัน strtolower() เพื่อแปลงสตริงเป็นอักขระตัวเล็ก เช่น
| Code |
| $str = strtolower("Test"); $str2 = strtolower("Test2"); $number = similar_text($str, $str2); echo $number; |
2.เปรียบเทียบว่าเหมือนกันกี่เปอร์เซ็นต์
การจะทราบว่า สตริงหรือข้อความ 2 ข้อความเหมือนกันกี่เปอร์เซ็นต์ ทำได้ง่าย ๆ เพียงแค่ใส่พารามิเตอร์ตัวที่ 3 เข้าไปในฟังก์ชัน similar_text() เช่น
| Code |
| $number = similar_text("Test", "Test2", $percent); echo $percent; |
จากการรันโปรแกรมจะได้ผลลัพธ์ออกมาเป็น 88.8888888889 นั่นคือ ข้อความ Test และ Test2 มีความเหมือนกัน 88.8888888889 % หากเราไม่ต้องการทศนิยมก็แค่ใส่ (int) เข้าไปหน้าตัวแปร เช่น
| Code |
| $number = similar_text("Test", "Test2", $percent); echo (int)$percent; |
ลองใช้ดูนะครับ
ขึ้นไปด้านบน
