Модераторы: Aliance, skyboy, MoLeX, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сортировка файловой БД. 
:(
    Опции темы
Wentix
Дата 22.11.2008, 15:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 28.7.2008

Репутация: нет
Всего: нет



Здравствуйте.

Есть новостная база в таком формате:

id   :   author   :   content   :   mark   :   date


Например, так:
Код

1  :   admin  : ds addsada   s   :  2   :   01.01.01
2  :   admin  : d asasda sdsa   :  12   :   04.01.01
3  :   admin  : dsafsfsdfsdaas  :  1   :   01.05.01
4  :   admin  : dsaf dsdsdaas   :  6   :   01.01.02


Нужно отсортировать по mark, тоесть должно получиться:

Код

2  :   admin  : d asasda sdsa   :  12   :   04.01.01
4  :   admin  : dsaf dsdsdaas   :  6   :   01.01.02
1  :   admin  : ds addsada   s   :  2   :   01.01.01
3  :   admin  : dsafsfsdfsdaas  :  1   :   01.05.01



В порядке убывания.
Уже всяко пробывал, никак не получается =(. Будь это mysql-bd проблем бы не было...
Помогите пожалуйста smile
PM MAIL   Вверх
solenko
Дата 22.11.2008, 16:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1473
Регистрация: 15.1.2006
Где: Украина

Репутация: нет
Всего: 67



Считываем весь файл в массив (fopen, fgetcsv) и потом сортируем с пом. usort 


--------------------
Ла-ла-ла-ла
Заметьте, нет официального подтверждения, что это не просто четыре слога.
PM MAIL WWW ICQ Skype   Вверх
Wentix
Дата 22.11.2008, 16:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 28.7.2008

Репутация: нет
Всего: нет



Но ведь usort будет сортировать по первому значению (id), а нужно по 'mark'.

Добавлено через 11 минут и 42 секунды
Спасибо.
Проблему решил блогадоря http://omsk777.ru/all.php?act=sort
Как раз то что нужно =)
PM MAIL   Вверх
skyboy
Дата 22.11.2008, 16:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 8
Всего: 260



Цитата(Wentix @  22.11.2008,  15:27 Найти цитируемый пост)
Но ведь usort будет сортировать по первому значению (id), а нужно по 'mark'.

usort будет сортировать с использованием твоей функции. а твоя функция уже будет определять, по какому алгоритму сравнивать элементы.
PM MAIL   Вверх
solenko
Дата 22.11.2008, 16:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1473
Регистрация: 15.1.2006
Где: Украина

Репутация: нет
Всего: 67



Wentix, вы бы в мануал заглянули по поводу usort... 
А решение по вашей ссылке мягко говоря не универсальное


--------------------
Ла-ла-ла-ла
Заметьте, нет официального подтверждения, что это не просто четыре слога.
PM MAIL WWW ICQ Skype   Вверх
FredFrield
Дата 24.11.2008, 13:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 62
Регистрация: 4.4.2006

Репутация: нет
Всего: нет



я бы посоветовал алгоритмы сортировки методом Шелла
Гугл поможет, если не нашёл, пиши в ПМ скину.

Хотя посмотрев ту ссылку, можно и как они использовать... просто загонять всё в массив...
PM MAIL   Вверх
teroni
Дата 24.11.2008, 22:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 381
Регистрация: 15.5.2007
Где: Днепропетровск

Репутация: 8
Всего: 22



array_multisort можно попробовать...
Код

$a[0] = array(1, 'admin', 'ds addsada   s', 2,  '01.01.01');
$a[1] = array(2, 'admin', 'd asasda sdsa',  12, '04.01.01');
$a[2] = array(3, 'admin', 'dsafsfsdfsdaas', 1,  '01.05.01');
$a[3] = array(4, 'admin', 'dsaf dsdsdaas',  6,  '01.01.02');
foreach ($a as $array)
   $b[] = $array[3];
array_multisort($b, SORT_DESC, $a);
print_r($a);

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Тексты | Следующая тема »


 




[ Время генерации скрипта: 0.0524 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.