Use the "natural" algorithm to compare two strings (case insensitive):
<?phpecho strnatcasecmp("2Hello world!","10Hello WORLD!");echo "<br>";echo strnatcasecmp("10Hello world!","2Hello WORLD!");?>The strnatcasecmp() function uses a "natural" algorithm to compare two strings (case-insensitive).
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: strnatcasecmp() is case-insensitive.
strnatcasecmp( 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);?>