ID: 19850 Comment by: [EMAIL PROTECTED] Reported By: [EMAIL PROTECTED] Status: Open Bug Type: Arrays related Operating System: Linux + Windows PHP Version: 4CVS-2002-10-10 New Comment:
You want to use natcasesort(). strcasecmp() compares strings case-_in_sensitively - that means that 'A' =='a', so your usage of usort() does exactly what it should. Previous Comments: ------------------------------------------------------------------------ [2002-11-17 07:01:12] [EMAIL PROTECTED] Sorry that I open it again, but what should be the sense of sorting an array like Array ( [0] => A [1] => a [2] => AA [3] => b [4] => B [5] => BB ) usort($test, 'strcasecmp'); should sort case-sensitive, that means a,A, b,B, c,C... but what is A,a, b,B??? There is no logical algorithm to sort this way. What is the next? c,C or C,c? How can I get a,A, b,B, c,C..., means _real_ case-sensitive? ------------------------------------------------------------------------ [2002-10-27 19:56:59] [EMAIL PROTECTED] it works for me: Array ( [0] => A [1] => a [2] => AA [3] => b [4] => B [5] => BB ) Which is exactly what you should get... and the algorithm is platform independent in CVS.... ------------------------------------------------------------------------ [2002-10-10 10:41:32] [EMAIL PROTECTED] I tried the following script to sort an Array case-sensitive: <?php $test = array("B", "a", "b", "A", "BB", "AA"); usort($test, 'strcasecmp'); print_r($test); ?> What I expected to get was: Array ( [0] => A [1] => a [2] => AA [3] => B [4] => b [5] => BB ) What I got on Win2000/PHP 4.2.4-dev was: Array ( [0] => A [1] => a [2] => AA [3] => b [4] => B [5] => BB ) and using Linux with PHP 4.1.2 I got Array ( [0] => a [1] => A [2] => AA [3] => B [4] => b [5] => BB ) both is not correct. regards Andreas ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=19850&edit=1