คำอธิบาย
ฟังก์ชัน strnatcmp() ใช้สำหรับเปรียบเทียบสตริงสองตัวโดยใช้อัลกอริทึม "natural order" (ลำดับตามธรรมชาติ) ซึ่งแตกต่างจากการเปรียบเทียบแบบปกติที่ใช้ค่า ASCII โดยตรง ฟังก์ชันนี้จะจัดการตัวเลขในสตริงอย่างสมเหตุสมผล เช่น "2" จะน้อยกว่า "10" (ในขณะที่การเปรียบเทียบแบบ ASCII ธรรมดาจะได้ "2" มากกว่า "10" เพราะ '2' มีค่า ASCII มากกว่า '1')
รูปแบบการใช้งาน (Syntax)
strnatcmp(string $str1, string $str2): int
พารามิเตอร์
- str1 - สตริงแรกที่ต้องการเปรียบเทียบ
- str2 - สตริงที่สองที่ต้องการเปรียบเทียบ
ค่าที่คืนกลับ (Return Value)
- 0 - ถ้าสตริงทั้งสองเท่ากัน
- < 0 - ถ้า str1 น้อยกว่า str2
- > 0 - ถ้า str1 มากกว่า str2
ตัวอย่างการใช้งาน
ตัวอย่างที่ 1
<?php
echo strnatcmp("Test", "TEST");
?>ผลลัพธ์
1
ตัวอย่างที่ 2 - การเปรียบเทียบตัวเลขในสตริง
<?php
echo strnatcmp("5Demo", "50DEMO");
echo "\n";
echo strnatcmp("50Demo", "5DEMO");
echo "\n";
echo strnatcmp("100Demo", "100Demo");
?>ผลลัพธ์
-1 1 0