ใช้อัลกอริทึม "ธรรมชาติ" เพื่อเปรียบเทียบสองสตริง (คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่):
<?phpecho strnatcmp("2Hello world!","10Hello world!");echo "<br>";echo strnatcmp("10Hello world!","2Hello world!");?>ฟังก์ชัน strnatcmp() ใช้อัลกอริทึม "ธรรมชาติ" เพื่อเปรียบเทียบสองสตริง (คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่)
ในคณิตศาสตร์ธรรมชาติ เลข 2 น้อยกว่าเลข 10 ในการเรียงลำดับด้วยคอมพิวเตอร์ 10 น้อยกว่า 2 เพราะเลขตัวแรกใน 10 น้อยกว่า 2
หมายเหตุ: ฟังก์ชันนี้คำนึงถึงขนาดตัวพิมพ์
strnatcmp( string1,string2 )
พารามิเตอร์ | อธิบาย |
---|---|
สตริง1 | ที่จำเป็น. ระบุสตริงแรกที่จะเปรียบเทียบ |
สตริง2 | ที่จำเป็น. ระบุสตริงที่สองที่ต้องการเปรียบเทียบ |
ค่าส่งคืน: | ฟังก์ชันส่งคืน: 0 - ถ้าทั้งสองสายเท่ากัน <0 - ถ้า string1 น้อยกว่า string2 >0 - ถ้า string1 มากกว่า string2 |
---|---|
เวอร์ชัน PHP: | 4+ |
ความแตกต่างระหว่างอัลกอริธึมธรรมชาติ (strnatcmp) และอัลกอริธึมการเรียงลำดับสตริงคอมพิวเตอร์ทั่วไป (strcmp):
<?php$arr1 = $arr2 = array("pic1", "pic2", "pic10", "pic01", "pic100", "pic20", "pic30", "pic200"); echo "การเปรียบเทียบสตริงมาตรฐาน" "<br>";usort($arr1,"strcmp");print_r($arr1);echo "<br>";echo "การเปรียบเทียบสตริงลำดับตามธรรมชาติ"."<br>";usort($arr2,"strnatcmp");print_r($arr2);?>