我在一个对象数组上有以下usort
个。我希望数组主要按第二种排序排序,并且任何关系都要按第一种排序(即,保留第一种排序的位置)。
usort($arr, function($a, $b) { return ($a->best->notout < $b->best->notout) ? 1 : (($a->best->notout > $b->best->notout) ? -1 : 0); });
usort($arr, function($a, $b) { return ($a->best->runs < $b->best->runs) ? 1 : (($a->best->runs > $b->best->runs) ? -1 : 0); });
它们都可以自己正常工作(通过评论另一个来测试),但是当一起使用时,结果是出乎意料的,只要第二种类型上的相同结果不是 默认为第一个排序或返回与第二个排序相同的结果。
就像我说的第一种方式按预期工作,所以在经过大量的摆弄之后,我仍然没有找到满意的答案。
有什么想法吗?
答案 0 :(得分:0)
你需要一种称为稳定排序的东西,而不是。如果库中没有这样的东西,你可以自己实现它,例如使用合并排序算法