執行個體
使用"自然"演算法來比較兩個字串(不區分大小寫):
<?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 |
必需。規定要比較的第二個字串。 |
技術細節
更多執行個體
執行個體 1
自然演算法(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);?>
自然排序strnatcmp():該函數同strcmp函數用法基本一致,但是比較的原則有所有不同.該函數並不是按照字典順序排列的,而是按照"自然排序"比較字串.所謂自然排序就是按照人們的習慣來進行排序,例如strcmp函數來進行排序,"4"會大於"14",而在現實中,數字"14"在大於"4",因此strnatcmp函數是按照後者來進行比較的.