对查询结果进行随机排序,但具有一定的规则(usort)

时间:2014-11-17 20:16:38

标签: php mysql arrays sorting usort

我得到了一个mysql查询结果的房间数组(mysql_fetch_assoc())。我想随机订购这个阵列'但有一条规则。每个房间号码不能高于或低于下一个房间号码。

现在我假设我应该使用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");

非常感谢!

1 个答案:

答案 0 :(得分:0)

试试这个:

function cmp ($a, $b){
    return $b - $a; 
}
usort($room_array, 'cmp');