ID:               40334
 User updated by:  den4b at mail dot ru
 Reported By:      den4b at mail dot ru
-Status:           Bogus
+Status:           Open
 Bug Type:         Arrays related
 Operating System: Windows XP SP2
 PHP Version:      5.2.0
 New Comment:

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.


Previous Comments:
------------------------------------------------------------------------

[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
)

------------------------------------------------------------------------

[2007-02-03 01:05:59] den4b at mail dot ru

Re-opening this bug.

------------------------------------------------------------------------

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

Reply via email to