(PHP 4, PHP 5, PHP 7, PHP 8)
strnatcmp — Сравнивает строк алгоритмом natural order
Функция реализует алгоритм сравнения, который упорядочивает буквенно-цифровые строки подобно тому, как это сделал бы человек, такой алгоритм называется natural ordering. Функция учитывает регистр при сравнении строк.
string1
Первая строка.
string2
Вторая строка.
Функция возвращает значение меньше 0, если строка string1
меньше строки string2
; значение больше
0, если строка string1
больше строки
string2
, и 0
, если строки
равны.
Из значения возврата невозможно надёжно вывести конкретное значение,
кроме знака числа.
Версия | Описание |
---|---|
8.2.0 |
Функция больше не гарантирует возврат разницы
strlen($string1) - strlen($string2) , когда длины строк
не равны, но теперь вместо этого иногда возвращает -1
или 1 .
|
Следующий параграф приводит пример, который показывает отличие этого алгоритма от обычных функций сравнения наподобие функции strcmp():
<?php
$arr1 = $arr2 = array("img12.png", "img10.png", "img2.png", "img1.png");
echo "Стандартный алгоритм сравнения\n";
usort($arr1, "strcmp");
print_r($arr1);
echo "\nАлгоритм \"natural order\"\n";
usort($arr2, "strnatcmp");
print_r($arr2);
?>
Результат выполнения приведённого примера:
Стандартный алгоритм сравнения Array ( [0] => img1.png [1] => img10.png [2] => img12.png [3] => img2.png ) Алгоритм "natural order" Array ( [0] => img1.png [1] => img2.png [2] => img10.png [3] => img12.png )