Сортировать результат запроса случайным образом, но с определенными правилами (usort)

Я получаю массив (mysql_fetch_assoc ()) комнат в результате запроса mysql. Я хочу заказать этот массив «случайно», но с одним правилом. Каждый номер комнаты не может быть более чем на 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");

Спасибо!

0

Решение

Попробуй это:

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

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]