Функция 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,
    която сортира масив, използвайки естествен ред без значение на регистъра