Edit report at http://bugs.php.net/bug.php?id=47643&edit=1
ID: 47643
Comment by: lonnyk at gmail dot com
Reported by: viper7 at viper-7 dot com
Summary: array_diff() takes over 3000 times longer than php
5.2.4
Status: Assigned
Type: Bug
Package: Performance problem
Operating System: *
PHP Version: 5.*, 6CVS (2009-04-13)
Assigned To: felipe
Block user comment: N
New Comment:
I feel as though the actual bug here is the fix that caused this issue.
If you
revert the fix and typecast the variables passed into the custom compare
function
as (string) then this works fine. This is in line with other non-user
defined
comparison functions, they compare as === and not ==
Previous Comments:
------------------------------------------------------------------------
[2010-04-16 22:20:37] sylvain at jamendo dot com
I would also appreciate a patch, this issue made our servers crash after
a php 5.3
upgrade :-/
thanks!
------------------------------------------------------------------------
[2010-02-17 20:53:53] maarten at talkin dot nl
Why dont you only reset ptr if (behavior & DIFF_ASSOC) ?
------------------------------------------------------------------------
[2010-01-17 12:09:15] emiel dot bruijntjes at copernica dot com
This bug is now open for 10 months. Are you still working on this?
------------------------------------------------------------------------
[2009-07-09 20:38:20] [email protected]
As Dmitry's noted, this is side-effect your fix caused.
------------------------------------------------------------------------
[2009-07-01 15:32:01] [email protected]
The problems occurs because of "bad" patch for bug #42838.
The diff algorithm sorts arrays using qsort and then assumes that they
are sorted correctly. But in case of user compaison function it can't be
guaranteed. Thus in ext/standard/tests/array/bug42838.phpt
key_compare_func() can't sort array correctly because expressions (0 <
'a') and (0 > 'a') both false ('a' is interpreted as a number 0).
It should be fixed in some way
------------------------------------------------------------------------
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/bug.php?id=47643
--
Edit this bug report at http://bugs.php.net/bug.php?id=47643&edit=1