【发布时间】:2011-06-08 23:06:47
【问题描述】:
下面的 usort 函数并不总是给出正确的结果,因为它只会相对于比较项目“向上或向下推”一个位置。因此,当多次执行排序时,可能会出现结果Yes No Yes No。
函数成功排序字段b。
我该如何解决这个问题?
数组
[0] => array("a"=>"Yes","b"=>"apple"...);
[1] => array("a"=>"Yes","b"=>"banana"...);
[2] => array("a"=>"No","b"=>"lemon"...);
[3] => array("a"=>"No","b"=>"grape"...);
...
当前功能
function sortAnserDesc($x, $y){
if ( $x['a'] == $y['a'] )
return 0;
else if ( $x['a'] < $y['a'] )
return 1;
else
return -1;
}
【问题讨论】:
-
我无法重现您所说的内容。对我来说,它有效。您使用的是什么 PHP 版本?你是怎么调用 usort 函数的?
-
我是手动写的数组,排序6+字段包含yes或no时应该可以重现错误。