Сделано в Раскрутке

Архив эхоконференции RU.PHP

- RU.PHP ------------------------------------------------------------- RU.PHP -
 Msg  : #4105 [593]
 От   : Aleksey Sosnovikov            2:5020/400          04 ноября 03, 20:37
 Кому : Al Metelica                                       07 сентября 03, 00:05
 Тема : Re: Многоуровневая сортировка
-------------------------------------------------------------------------------
From: "Aleksey Sosnovikov" 

"Al Metelica"  сообщил/сообщила в
новостях следующее: news:1067965037@p26.f20.n457.z2.ftn...
> Подскажите пожалуйста, как средствами MySQL и PHP осуществить
многоуровневую
> сортировку.
> Пример: Есть таблица с колонками -  фильмы, год их выпуска, описание.
Hужно
> сделать чтобы они сортировались по году, а внутри одного года ещё и по
> названию.
Если работа происходит не через БД, то предлагаю такой вариант: использовать
функцию usort() а в пользовательской процедуре сравнения сделать следующее:

function cmp ($a, $b) {
    $aa = $a{"year"}.$a{"descr"};
    $bb = $b{"year"}.$b{"descr"};
    if ($aa == $bb) return 0;
    return ($aa < $bb) ? -1 : 1;
}

Таким образом первичным критерием сортировки будет год, а вторичным -
описание. Если нужно сортировать по убыванию года и по "возрастанию"
описания, то будет

    $aa = (9999-$a{"year"}).$a{"descr"};
    $bb = (9999-$b{"year"}).$b{"descr"};

// Aleksey Sosnovikov aka Salex, http://salex.pp.ru


--- ifmail v.2.15dev5
 * Origin: Demos online service (2:5020/400)


При переходе по баннеру - скидка 25% на первый месяц обслуживания!
Самый простой способ получить ROOT-доступ
При переходе по баннеру - скидка 25% на первый месяц обслуживания!