php8.5
Home/ Manual/ strings / functions/ strnatcmp

strnatcmp

PHP function Edit on GitHub ✎

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

String comparisons using a "natural order" algorithm

Description

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

This function implements a comparison algorithm that orders alphanumeric strings in the way a human being would, this is described as a "natural ordering". Note that this comparison is case sensitive.

Parameters

string1

The first string.

string2

The second string.

Return Values Return

Changelog

VersionDescription

Examples

An example of the difference between this algorithm and the regular computer string sorting algorithms (used in strcmp()) can be seen below:

strcmp()

php
<?php
$arr1 = $arr2 = array("img12.png", "img10.png", "img2.png", "img1.png");
echo "Standard string comparison\n";
usort($arr1, "strcmp");
print_r($arr1);
echo "\nNatural order string comparison\n";
usort($arr2, "strnatcmp");
print_r($arr2);
?>

The above example will output:

output
Standard string comparison
Array
(
    [0] => img1.png
    [1] => img10.png
    [2] => img12.png
    [3] => img2.png
)

Natural order string comparison
Array
(
    [0] => img1.png
    [1] => img2.png
    [2] => img10.png
    [3] => img12.png
)

For more information see: Martin Pool's Natural Order String Comparison page.

See Also

Source: reference/strings/functions/strnatcmp.xml · from the official PHP manual (php/doc-en)