เปรียบเทียบตัวอักษร 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;


ลองใช้ดูนะครับ

ขึ้นไปด้านบน