Используйте «естественный» алгоритм для сравнения двух строк (с учетом регистра):
<?phpecho strnatcmp("2Привет, мир!","10Привет, мир!");echo "<br>";echo strnatcmp("10Привет, мир!","2Привет, мир!");?>Функция strnatcmp() использует «естественный» алгоритм для сравнения двух строк (с учетом регистра).
В натуральной арифметике число 2 меньше числа 10. При компьютерной сортировке 10 меньше 2, потому что первое число из 10 меньше 2.
Примечание. Эта функция чувствительна к регистру.
strnatcmp( строка1,строка2 )
параметр | описывать |
---|---|
строка1 | Необходимый. Указывает первую строку для сравнения. |
строка2 | Необходимый. Указывает вторую строку для сравнения. |
Возвращаемое значение: | Функция возвращает: 0 — если две строки равны <0 — если строка1 меньше строки2 >0 — если строка1 больше строки2 |
---|---|
PHP-версия: | 4+ |
Разница между естественным алгоритмом (strnatcmp) и обычным компьютерным алгоритмом сортировки строк (strcmp):
<?php$arr1 = $arr2 = array("pic1","pic2","pic10","pic01","pic100","pic20","pic30","pic200");echo "Стандартное сравнение строк" ."<br>";usort($arr1,"strcmp");print_r($arr1);echo "<br>";echo "Сравнение строк в естественном порядке"."<br>";usort($arr2,"strnatcmp");print_r($arr2);?>