PHP 8.4.2 Released!

strnatcasecmp

(PHP 4, PHP 5, PHP 7, PHP 8)

strnatcasecmpСравнивает строки без учёта регистра по алгоритму natural order

Описание

strnatcasecmp(string $string1, string $string2): int

Функция реализует алгоритм сравнения, который упорядочивает буквенно-цифровые строки так, как это сделал бы человек. Поведение функции аналогично функции strnatcmp(), за исключением того, что символы сравниваются без учёта регистра. Дополнительную информацию даёт » Сравнение строк в естественном порядке.

Список параметров

string1

Первая строка.

string2

Вторая строка.

Возвращаемые значения

Функция возвращает значение меньше 0, если строка string1 меньше строки string2; значение больше 0, если строка string1 больше строки string2, и 0, если строки равны. Из значения возврата невозможно надёжно вывести конкретное значение, кроме знака числа.

Список изменений

Версия Описание
8.2.0 Функция больше не гарантирует возврат разницы strlen($string1) - strlen($string2), когда длины строк не равны, но теперь вместо этого иногда возвращает -1 или 1.

Примеры

Пример #1 Пример cравнения строк без учёта регистра функцией strnatcasecmp()

<?php

var_dump
(strnatcasecmp('Apple', 'Banana'));
var_dump(strnatcasecmp('Banana', 'Apple'));
var_dump(strnatcasecmp('apple', 'Apple'));

?>

Результат выполнения приведённого примера:

int(-1)
int(1)
int(0)

Смотрите также

  • preg_match() - Выполняет проверку на соответствие регулярному выражению
  • strcmp() - Сравнивает строки в бинарно-безопасном режиме: как последовательности байтов
  • strcasecmp() - Сравнивает строки без учёта регистра в бинарно безопасном режиме
  • substr() - Возвращает подстроку
  • stristr() - Регистронезависимый вариант функции strstr
  • strncasecmp() - Сравнивает первые n символов строк без учёта регистра в бинарно-безопасном режиме
  • strncmp() - Сравнивает первые n символов строк в бинарно безопасном режиме
  • strstr() - Находит первое вхождение подстроки
  • setlocale() - Устанавливает региональные настройки

Добавить

Примечания пользователей 2 notes

up
9
chatfielddaniel at googlemail dot com
13 years ago
The function treats '_' as after letters and numbers when it would be placed before logically.
up
4
Marco
8 years ago
Use strnatcmp to avoid the _ problem as mentioned below;

<< The function treats '_' as after letters and numbers when it would be placed before logically. >>
To Top