Re: com php-src: Faster sorting algo: UPGRADING Zend/Makefile.am Zend/tests/methods-on-non-objects-usort.phpt Zend/zend_API.c Zend/zend_hash.c
Zend/zend_hash.h Zend/zend_ini.c Zend/zend_llist.c Zend/zend_qsort.c Zend/zend_qsort.h Zend/zend_sort.c Zend/zend_sort.h Zend/zend_ts_hash.c
Zend/zend_types.h configure.in ext/ereg/ereg.c ext/intl/collator/collator_sort.c ext/phar/dirstream.c ext/phar/phar_internal.h ext/standard/array.c
ext/standard/info.c ex

From: Date: Sat, 17 Jan 2015 03:18:56 +0000
Subject: Re: com php-src: Faster sorting algo: UPGRADING Zend/Makefile.am Zend/tests/methods-on-non-objects-usort.phpt Zend/zend_API.c Zend/zend_hash.c
Zend/zend_hash.h Zend/zend_ini.c Zend/zend_llist.c Zend/zend_qsort.c Zend/zend_qsort.h Zend/zend_sort.c Zend/zend_sort.h Zend/zend_ts_hash.c
Zend/zend_types.h configure.in ext/ereg/ereg.c ext/intl/collator/collator_sort.c ext/phar/dirstream.c ext/phar/phar_internal.h ext/standard/array.c
ext/standard/info.c ex
References: 1 2 3 4  Groups: php.internals 
Request: Send a blank email to internals+get-80670@lists.php.net to get a copy of this message
Hey: On Sat, Jan 17, 2015 at 8:20 AM, Rasmus Lerdorf <rasmus@lerdorf.com> wrote: > On 01/16/2015 03:54 PM, Simon J Welsh wrote: >> That’s an invalid comparison function. It causes the current usort to reverse sort the >> array and I see no problem with that changing (you’re saying that a value for $a less than $b is >> in fact greater than it, and a value of $b less than or equal to $a is equal to it). > > Your didn't make much sense. But yes, I am aware it is a weird > comparison function taken from an existing app which is now broken under > PHP7 but it only breaks if the array grows beyond 16 elements. > If we are going to make a BC change here, it shouldn't be in a way that > is dependent on the size of the array being sorted. I suggest you use : function cmp($a,$b) { return strtotime($a['date']) - strtotime($b['date']); } as our usort doc said: "The comparison function must return an integer less than, equal to, or greater than zero if the first argument is considered to be respectively less than, equal to, or greater than the second." otherwise, it's not a defined behavior thanks > > -Rasmus > > -- Xinchen Hui @Laruence http://www.laruence.com/

« previous php.internals (#80670) next »