Hey:

On Sat, Jan 17, 2015 at 8:20 AM, Rasmus Lerdorf <ras...@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/

--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to