Use the "natural" algorithm to compare two strings (case sensitive):
<?phpecho strnatcmp("2Hello world!","10Hello world!");echo "<br>";echo strnatcmp("10Hello world!","2Hello world!");?>The strnatcmp() function uses a "natural" algorithm to compare two strings (case sensitive).
In natural arithmetic, the number 2 is less than the number 10. In computer sorting, 10 is less than 2 because the first number in 10 is less than 2.
Note: This function is case-sensitive.
strnatcmp( string1,string2 )
parameter | describe |
---|---|
string1 | Required. Specifies the first string to compare. |
string2 | Required. Specifies the second string to be compared. |
Return value: | The function returns: 0 - if the two strings are equal <0 - if string1 is less than string2 >0 - if string1 is greater than string2 |
---|---|
PHP version: | 4+ |
The difference between the natural algorithm (strnatcmp) and the conventional computer string sorting algorithm (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);?>