unFair
Новичок
Сортировка по нескольким полям
Добрый день. Задача такая:
есть таблица, к примеру
name | var1 | var2 | var3
-----------------------------------
один | 1 | 2 | 7
два | 1 | 2 | 8
три | 2 | 3 | 5
четыре | 2 | 3 | 10
пять | 3 | 3 | 2
шесть | 3 | 4 | 2
семь | 4 | 2 | 6
Нужно отсортировать ее таким образом, чтобы первыми шли строки с большим значением var1 а при его равенстве у нескольких строк сравнивались бы дополнительные параметры таким образом - вначале проверялось бы у кого больше значение var2, а если и оно одинаковое, то у кого меньше var3.
Т.е. в итоге таблица должна выстроиться так:
name | var1 var2 var3
семь | 4 | 2 | 6
шесть | 3 | 4 | 2
пять | 3 | 3 | 2
три | 2 | 3 | 5
четыре | 2 | 3 | 10
один | 1 | 2 | 7
два | 1 | 2 | 8
Хотя на самом деле сравниваемых значений может быть и больше, но суть та же. Как наименее ресурсозатратно и соответственно наиболее быстро отсортировать по такой функции таблицу? Или это можно сделать, только сравнивая на php каждую строку с каждой? А если строк много, а параметров много то выполняться она будет довольно долго в любом случае?..
Спасибо за ответы=)
Добрый день. Задача такая:
есть таблица, к примеру
name | var1 | var2 | var3
-----------------------------------
один | 1 | 2 | 7
два | 1 | 2 | 8
три | 2 | 3 | 5
четыре | 2 | 3 | 10
пять | 3 | 3 | 2
шесть | 3 | 4 | 2
семь | 4 | 2 | 6
Нужно отсортировать ее таким образом, чтобы первыми шли строки с большим значением var1 а при его равенстве у нескольких строк сравнивались бы дополнительные параметры таким образом - вначале проверялось бы у кого больше значение var2, а если и оно одинаковое, то у кого меньше var3.
Т.е. в итоге таблица должна выстроиться так:
name | var1 var2 var3
семь | 4 | 2 | 6
шесть | 3 | 4 | 2
пять | 3 | 3 | 2
три | 2 | 3 | 5
четыре | 2 | 3 | 10
один | 1 | 2 | 7
два | 1 | 2 | 8
Хотя на самом деле сравниваемых значений может быть и больше, но суть та же. Как наименее ресурсозатратно и соответственно наиболее быстро отсортировать по такой функции таблицу? Или это можно сделать, только сравнивая на php каждую строку с каждой? А если строк много, а параметров много то выполняться она будет довольно долго в любом случае?..
Спасибо за ответы=)