PHP strnatcmp() 函数
PHP strnatcmp() 函数使用一种"自然"算法来比较两个字符串(区分大小写)
( PHP >= 4 )
函数原型
strnatcmp( string1,string2 )
在自然算法中,数字 2 小于数字 10。在计算机排序中,10 小于 2,这是因为 10 中的第一个数字小于 2
该函数是区分大小写的
参数
参数 | 描述 |
---|---|
string1 | 必需。规定要比较的第一个字符串 |
string2 | 必需。规定要比较的第二个字符串 |
返回值
该函数返回:
0 - 如果两个字符串相等
<0 - 如果 string1 小于 string2
>0 - 如果 string1 大于 string2
范例
使用"自然"算法来比较两个字符串(区分大小写)
<?php echo strnatcmp("2Hello world!","10Hello world!"); echo "<br>"; echo strnatcmp("10Hello world!","2Hello world!");
运行以上 PHP 范例,输出结果如下
-1 1
范例 2
自然算法(strnatcmp)和常规计算机字符串排序算法(strcmp)的不同
<?php $arr2 = array("pic1","pic2","pic10","pic01","pic100","pic20","pic30","pic200"); $arr1 = $arr2; 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);
运行以上 PHP 范例,输出结果如下
Standard string comparison Array ( [0] => pic01 [1] => pic1 [2] => pic10 [3] => pic100 [4] => pic2 [5] => pic20 [6] => pic200 [7] => pic30 ) Natural order string comparison Array ( [0] => pic01 [1] => pic1 [2] => pic2 [3] => pic10 [4] => pic20 [5] => pic30 [6] => pic100 [7] => pic200 )