ID: 40334 Comment by: dennis at d23 dot nl Reported By: den4b at mail dot ru Status: Open Bug Type: Arrays related Operating System: Windows XP SP2 PHP Version: 5.2.0 New Comment:
The text clearly states: "Leading zeros are not ignored, which tends to give more reasonable results on decimal fractions" Strangely the example at http://sourcefrog.net/projects/natsort/example-out.txt does not comply with the above statement. Actual results comply with the statement, so not a bug it seems, more a feature request. I can see the use for a toggle to ignore leading zeroes. Previous Comments: ------------------------------------------------------------------------ [2007-02-05 20:44:32] den4b at mail dot ru LOL, you are simply amazing, you know that?!! That's exactly where I pointed you to! And now look at their example: http://sourcefrog.net/projects/natsort/example-out.txt Especially note these fragments: --------------- pic100 pic100a pic120 pic121 pic02000 --------------- x2-g8 x2-y7 x2-y08 x8-y8 --------------- Do "pic02000" and "x2-y08" come first because of the zero?! Is there anybody else (professional enough) to address this issue, or will I have to argue with you for the rest of the year? ;-) Some of the implementations listed on that site contain ERRORS! And I'm afraid PHP has adopted the wrong implementation. ------------------------------------------------------------------------ [2007-02-05 20:25:53] [EMAIL PROTECTED] Start with this link http://sourcefrog.net/projects/natsort/ if you don't understand what "natural sort order" means. ------------------------------------------------------------------------ [2007-02-05 20:18:44] den4b at mail dot ru OMFG man.. can't you see it?!! Natural order sort algorithm meant to treat NUMBERS as NUMERIC values, thus comparing them NUMERICALLY, NOT AS CHARACTERS (like you are saying). 02 = 2 1 = 1 Does 2 comes before 1 ?!! It gets even better... 02000 = 2000 Does 2000 comes before 1 ?!! I think left alignment misleads you, so I've added an extra space in front of 1. What will you say this time? Reproduce code: --------------------- $a = array('a 02', 'a 1', 'a 02000', 'a 03'); natsort($a); print_r($a); Result (incorrect) --------------------- Array ( [0] => a 02 [2] => a 02000 [3] => a 03 [1] => a 1 ) Expected result: --------------------- Array ( [1] => a 1 [0] => a 02 [3] => a 03 [2] => a 02000 ) ------------------------------------------------------------------------ [2007-02-05 09:36:06] [EMAIL PROTECTED] 1 coming before 0? No, that's definitely not the result expected. 0 will always come before 1. ------------------------------------------------------------------------ [2007-02-03 01:11:28] den4b at mail dot ru Reproduce code: --------------- $a = array('a 02', 'a 1', 'a 02000', 'a 03'); natsort($a); print_r($a); Result (Incorrect): -------------- Array ( [0] => a 02 [2] => a 02000 [3] => a 03 [1] => a 1 ) ------------------------------------------------------------------------ The remainder of the comments for this report are too long. To view the rest of the comments, please view the bug report online at http://bugs.php.net/40334 -- Edit this bug report at http://bugs.php.net/?id=40334&edit=1
