Problems with strnatcmp and strnatcasecmp
| Bug #19795 | Problems with strnatcmp and strnatcasecmp | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Submitted: | 2002-10-07 03:51 UTC | Modified: | 2003-04-16 16:11 UTC |
|
||||||||||
| From: | doc at nitramlexa dot com | Assigned: | ||||||||||||
| Status: | Closed | Package: | Strings related | |||||||||||
| PHP Version: | 4.2.2 | OS: | FreeBSD 4.6 | |||||||||||
| Private report: | No | CVE-ID: | None | |||||||||||
[2002-10-07 03:51 UTC] doc at nitramlexa dot 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.
Patches
Pull Requests
History
AllCommentsChangesGit/SVN commits
[2002-10-07 03:58 UTC] derick@php.net
[2002-10-07 06:00 UTC] doc at nitramlexa dot com
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" }[2003-01-27 16:11 UTC] kamikaze at yifan dot net
[2003-04-16 16:11 UTC] moriyoshi@php.net
[2004-06-28 14:55 UTC] mikael at chl dot chalmers dot se
[2004-07-16 04:32 UTC] mbp at sourcefrog dot net
[2004-07-29 10:42 UTC] larry at kamsha dot ru
[2012-02-09 07:32 UTC] redrat at mail dot ru