134 of 410 menu

The strnatcmp Function

The strnatcmp function performs a comparison of two strings using natural order sorting. Unlike standard comparison, this function recognizes numbers within strings and compares them by their numerical value. The function returns 0 if the strings are identical, a number less than 0 if the first string is less than the second, and a number greater than 0 if the first string is greater than the second.

Syntax

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

Example

Comparing strings with numbers using standard comparison and with strnatcmp:

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

Code execution result:

strcmp result: 1 strnatcmp result: -1

Example

Comparing strings with different numbers:

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

Code execution result:

-1

Example

Comparing identical strings:

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

Code execution result:

0

See Also

  • the strcmp function,
    which performs a binary-safe string comparison
  • the strcasecmp function,
    which compares strings case-insensitively
  • the natcasesort function,
    which sorts an array using natural order without case sensitivity
byenru