strnatcasecmp()

strnatcasecmp() — Case insensitive string comparisons using a "natural order" algorithm.

Built-in function of PHP 8.5. The manual lists it as available in PHP 4, PHP 5, PHP 7, PHP 8. This page is the reference card: signature, parameters and return value, plus the changelog and the example the manual provides.

What it does

This function implements a comparison algorithm that orders alphanumeric strings in the way a human being would. The behaviour of this function is similar to strnatcmp(), except that the comparison is not case sensitive. For more information see: Martin Pool's Natural Order String Comparison page.

Signature

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

Parameters

ParameterTypeWhat it takes
$string1stringThe first string.
$string2stringThe second string.

Return value

Returns a value less than 0 if string1 is less than string2; a value greater than 0 if string1 is greater than string2, and 0 if they are equal. No particular meaning can be reliably inferred from the value aside from its sign.

Example

A runnable snippet:

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

Output:

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

Changelog

VersionChange
8.2.0This function is no longer guaranteed to return strlen($string1) - strlen($string2) when string lengths are not equal, but may now return -1 or 1 instead.

See also

preg_match(), strcmp(), strcasecmp(), substr(), stristr(), strncasecmp(), strncmp(), strstr(), setlocale()

All PHP 8.5 built-in functions

Reference card built from the PHP manual page strnatcasecmp() (PHP documentation, CC BY 3.0). The page is generated from the manual, so the wording of the parameter and return value text follows php.net.