PHP 4.0 Bug #9645 Updated: usort, uasort, uksort fail every other time
| From: | busterb at mail dot utexas dot edu | Date: | Sat, 28 Apr 2001 21:17:11 +0000 |
| Subject: | PHP 4.0 Bug #9645 Updated: usort, uasort, uksort fail every other time | ||
| Groups: | php.dev | ||
| Request: | Send a blank email to php-dev+get-52800@lists.php.net to get a copy of this message | ||
ID: 9645
User Update by: busterb@mail.utexas.edu
Status: Closed
Bug Type: Arrays related
Description: usort, uasort, uksort fail every other time
I tried to produce a small, self-contained example of the
problem with uasort, but I had already moved my code away
from these routines in favor of an external sort.
Sadly, I couldn't reproduce the problem in a smaller
context, so it must have just been a bug in my code. If
anything, the cmp function is probably wrong, since it
returns 0 for the < case.
Previous Comments:
---------------------------------------------------------------------------
[2001-04-28 15:38:08] derick@php.net
No feedback. If this problem persists with PHP 4.0.5 which
will be released next week, please reopen this report.
Derick
---------------------------------------------------------------------------
[2001-03-29 06:12:06] stas@php.net
Could you please provide short self-contained script
demonstrating the problem (including data sample)?
---------------------------------------------------------------------------
[2001-03-09 01:40:12] busterb@mail.utexas.edu
usort, uasort and uksort all fail to sort an array
properly every other time they are called, unless the
array is reset() after each call.
This is a snippet from a class that fails every other time
it is called.
var $sort_field;
function cmp ($a, $b) {
return ($a[$this -> sort_field] > $b[$this ->
sort_field]);
}
function sort_records ($sort_field) {
$this -> sort_field = $sort_field;
uasort ($this -> record_data, array($this, "cmp"));
}
---------------------------------------------------------------------------
Full Bug description available at: http://bugs.php.net/?id=9645