使用"自然"演算法來比較兩個字串(不區分大小寫):
<?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 )
參數 | 描述 |
---|---|
string1 | 必需。規定要比較的第一個字串。 |
string2 | 必需。規定要比較的第二個字串。 |
傳回值: | 此函數傳回: 0 - 如果兩個字串相等 <0 - 如果string1 小於string2 >0 - 如果string1 大於string2 |
---|---|
PHP 版本: | 4+ |
自然演算法(strnatcmp)和常規電腦字串排序演算法(strcmp)的差異:
<?php$arr1 = $arr2 = array("pic1","pic2","pic10","pic01","pic100","pic20","pic30","pic200");echo "Standard string comparison" ."<br>";usort($arr1,"strcmp");print_r($arr1);echo "<br>";echo "Natural order string comparison"."<br>";usort($arr2,"strnatcmp");print_r($arr2);?>