strnatcmp
funkcja
Porównuje dwa ciągi z uwzględnieniem naturalnego porządku liczb (np. 'img10' > 'img2'), z rozróżnianiem wielkości liter.
strnatcmp(string $string1, string $string2): int
strnatcmp używa naturalnego porządku sortowania — traktuje liczby w ciągu jak wartości liczbowe, a nie jak sekwencje znaków. Dzięki temu 'img10' jest większe od 'img2' (10 > 2), podczas gdy zwykłe strcmp zwróciłoby wynik odwrotny (porównuje znaki: '1' < '2'). Funkcja rozróżnia wielkość liter — do porównania bez rozróżniania użyj strnatcasecmp. Wynik: 0 — równe, < 0 — pierwszy mniejszy, > 0 — pierwszy większy.
<?php
declare(strict_types=1);
var_dump(strcmp('img2', 'img10')); // wynik: int(1) — błędnie: '2' > '1' w ASCII
var_dump(strnatcmp('img2', 'img10')); // wynik: int(-1) — poprawnie: 2 < 10