strnatcmp

(PHP 4 >= 4.0.0)

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().