ใช้อัลกอริทึม "ธรรมชาติ" เพื่อเปรียบเทียบสองสตริง (ไม่คำนึงถึงตัวพิมพ์เล็กและใหญ่):
<?phpecho strnatcasecmp("2Hello world!","10Hello WORLD!");echo "<br>";echo strnatcasecmp("10Hello world!","2Hello WORLD!");?>ฟังก์ชัน strnatcasecmp() ใช้อัลกอริทึม "ธรรมชาติ" เพื่อเปรียบเทียบสองสตริง (ไม่คำนึงถึงตัวพิมพ์เล็กและใหญ่)
ในคณิตศาสตร์ธรรมชาติ เลข 2 น้อยกว่าเลข 10 ในการเรียงลำดับด้วยคอมพิวเตอร์ 10 น้อยกว่า 2 เพราะเลขตัวแรกใน 10 น้อยกว่า 2
หมายเหตุ: strnatcasecmp() ไม่คำนึงถึงขนาดตัวพิมพ์
strnatcasecmp( 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);?>