ID: 44929 Updated by: ras...@php.net Reported By: kae at verens dot com -Status: Assigned +Status: Closed Bug Type: Arrays related Operating System: * PHP Version: 5.*, 6CVS (2009-05-02) Assigned To: rasmus New Comment:
Yeah, we talked about that on internals. It's pretty much an either/or thing. If you want numeric sorting, sort it numerically. This is natcasesort and is more intended for filenames and such. So this is expected. Previous Comments: ------------------------------------------------------------------------ [2009-05-02 18:59:02] j...@php.net This fails now (in both 32bit and 64bit systems): # php -r '$a = array(.0001, .0021, -.01, -1, 0, .09, 2, -.9, 33); natcasesort($a); var_dump($a);' array(9) { [2]=> float(-0.01) [7]=> float(-0.9) [3]=> int(-1) [4]=> int(0) [0]=> float(0.0001) [5]=> float(0.09) [1]=> float(0.0021) [6]=> int(2) [8]=> int(33) } ------------------------------------------------------------------------ [2009-04-08 18:11:28] ras...@php.net This bug has been fixed in CVS. Snapshots of the sources are packaged every three hours; this change will be in the next snapshot. You can grab the snapshot at http://snaps.php.net/. Thank you for the report, and for helping us make PHP better. Fixed in CVS ------------------------------------------------------------------------ [2009-04-08 15:17:37] bax_70 at hotmail dot com Excuseme bad example the right one $a[0]="00001"; $a[1]="00008"; $a[2]="00005"; $a[3]="000011"; $a[4]="00003"; $a[5]="000014"; natsort($a); print_r($a); Array ( [0] => 00001 [3] => 000011 [5] => 000014 [4] => 00003 [2] => 00005 [1] => 00008 ) ------------------------------------------------------------------------ [2009-04-08 14:35:44] bax_70 at hotmail dot com Bad result. $a[0]=00001; $a[1]=00008; $a[2]=00005; $a[3]=000011; $a[4]=00003; $a[5]=000014; natsort($a); print_r($a); Array ( [1] => 0 [0] => 1 [4] => 3 [2] => 5 [3] => 9 [5] => 12 ) ------------------------------------------------------------------------ [2008-08-27 08:41:25] ras...@php.net Checking this further, this patch messes up the order of "0" in an array that contains negative values like "-123", so it still needs some work. ------------------------------------------------------------------------ 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/44929 -- Edit this bug report at http://bugs.php.net/?id=44929&edit=1