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
📘 Naucz się w lekcji →