#19795 [Com]: Problems with strnatcmp and strnatcasecmp

From: Date: Mon, 07 Oct 2002 11:00:22 +0000
Subject: #19795 [Com]: Problems with strnatcmp and strnatcasecmp
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-21699@lists.php.net to get a copy of this message
ID: 19795 Comment by: doc@nitramlexa.com Reported By: doc@nitramlexa.com Status: Feedback Bug Type: Strings related Operating System: FreeBSD 4.6 PHP Version: 4.2.2 New Comment: I am quite sure I did that yes. I set locale for LC_ALL and strftime is working as it should. If I understand the documentation correctly, this function should work as strcmp except for the fact that numbers are sorted in a natural order. And strcmp does sort as I expect. usort using strcmp: array(11) { [0]=> string(1) "1" [1]=> int(1) [2]=> string(2) "12" [3]=> string(1) "2" [4]=> string(1) "a" [5]=> string(1) "z" [6]=> string(1) "€" [7]=> string(1) "‰" [8]=> string(1) "å" [9]=> string(1) "æ" [10]=> string(1) "ø" } using strnatcmp: array(11) { [0]=> string(1) "€" [1]=> string(1) "‰" [2]=> string(1) "å" [3]=> string(1) "æ" [4]=> string(1) "ø" [5]=> string(1) "1" [6]=> int(1) [7]=> string(1) "2" [8]=> string(2) "12" [9]=> string(1) "a" [10]=> string(1) "z" } Previous Comments: ------------------------------------------------------------------------ [2002-10-07 03:58:36] derick@php.net Did you set-up your locales correctly? Derick ------------------------------------------------------------------------ [2002-10-07 03:51:15] doc@nitramlexa.com Characters with an ASCII value above 127 is considered to be the lower value. This is a bit unfortunate if you use a language with special characters (like the 3 danish letters after z in the list below). $list = array('a', 1, '2', '12', '1', 'z', 'æ', 'ø', 'å', chr(137), chr(128)); usort($list, 'strnatcmp'); var_dump($list); The values above 127 are sorted correctly, they should just be considered higher than A-z. I believe I have seen this bug on a Solaris Unix as well. But that was a while ago and I can not provide any detailed information on that situation. ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=19795&edit=1

« previous php.bugs (#21699) next »