Forum und email
strnatcmp

strnatcmp

(PHP 4, PHP 5)

strnatcmp -- Porovnání řetězců algoritmem "přirozeného třídění"

Popis

int strnatcmp ( string str1, string str2 )

Tato funkce implementuje srovnávací algoritmus který třídí alfanumerické řetězce stejným způsobem jako člověk, toto se popisuje jako "přirozené třídění". Ukázka rozdílu mězi tímto algoritmem a běžnými počítačovými algoritmy pro řazení řetězců (např. strcmp()):

$arr1 = $arr2 = array ("img12.png","img10.png","img2.png","img1.png");
echo "Standardní porovnávání řetězců\n";
usort($arr1,"strcmp");
print_r($arr1);
echo "\nPřirozené porovnávání řetězců\n";
usort($arr2,"strnatcmp");
print_r($arr2);

Výše uvedený kód vygeneruje následující výstup:

Standardní porovnávání řetězců
Array
(
    [0] => img1.png
    [1] => img10.png
    [2] => img12.png
    [3] => img2.png
)

Přirozené porovnávání řetězců
Array
(
    [0] => img1.png
    [1] => img2.png
    [2] => img10.png
    [3] => img12.png
)

Více informací viz stránka Martina Poola Natural Order String Comparison.

Podobně jako jiné funkce pro porovnávání řetězců i tato vrací < 0 pokud je str1 menší než str2; > 0 pokud je str1 větší než str2, a 0 pokud jsou shodné.

Pozn.: toto porovnání je case-sensitive.

Viz také: ereg(), strcasecmp(), substr(), stristr(), strcmp(), strncmp(), strncasecmp(), strnatcasecmp(), strstr(), natsort() a natcasesort().