作为 mysql 查询的结果,我得到了一个房间数组 ( mysql_fetch_assoc() )。我想“随机”地排序这个数组,但有一个规则。每个房间号不能比下一个房间号高或低超过 2 个。
现在我认为我应该使用 usort 来执行此操作,但我似乎无法弄清楚。我已经查看了 usort 的一些问题和解释,但我根本无法理解。我确信这不会像我目前遇到的那么困难......
这就是我现在正在尝试的。
shuffle($room_array);
function cmp($a, $b){
if ($a["room"] == $b["room"] || $a["room"]+2 == $b["room"]|| $a["room"]+1 == $b["room"]|| $a["room"]-2 == $b["room"]|| $a["room"]-1 == $b["room"]){
return 1;
}else return 0;
}
usort($room_array, "cmp");
非常感谢!
最佳答案
试试这个:
function cmp ($a, $b){
return $b - $a;
}
usort($room_array, 'cmp');
关于php - 对查询结果进行随机但有一定规则的排序(usort),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26981160/