Функция strnatcmp

Функция strnatcmp выполняет сравнение двух строк с учетом естественного порядка символов. В отличие от обычного сравнения, эта функция распознает числа внутри строк и сравнивает их по числовому значению. Функция возвращает 0 если строки идентичны, число -1 если первая строка меньше второй, и число больше 1 если первая строка больше второй.

Синтаксис

phpstrnatcmp(string $str1, string $str2): int

Пример

Сравнение строк с числами обычным способом и с помощью strnatcmp:

php<?php
  $res1 = strcmp("file2.txt", "file10.txt");
  $res2 = strnatcmp("file2.txt", "file10.txt");
  
  echo "strcmp result: " . $res1 . "\n";
  echo "strnatcmp result: " . $res2;
?>

Результат выполнения кода:

phpstrcmp result: 1
strnatcmp result: -1

Пример

Сравнение строк с разными числами:

php<?php
  $res = strnatcmp("image5.jpg", "image15.jpg");
  echo $res;
?>

Результат выполнения кода:

php-1

Пример

Сравнение одинаковых строк:

php<?php
  $res = strnatcmp("hello123", "hello123");
  echo $res;
?>

Результат выполнения кода:

php0

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

  • функцию strcmp,
    которая выполняет бинарно-безопасное сравнение строк
  • функцию strcasecmp,
    которая сравнивает строки без учета регистра
  • функцию natcasesort,
    которая сортирует массив с использованием естественного порядка без учета регистра