strnatcmp

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