![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| Megas |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 60 Регистрация: 15.1.2006 Репутация: нет Всего: нет |
Доброе время суток.
Столкнулся со следующей проблемой: имеется некий двумерный массив данных, допустим это массив пользователей:
Так вот, необходимо было отсортировать этот массив по некоему значению и выбрать топ10. Для этого был написан следующий код:
Но обнаружилось, что когда этот массив очень большой, то эта сортировка может занять уйму времени. К примеру, сортировка 100К записей забрала почти 3 часа (128М памяти и ядро сервера загруженное на 95%). Первое что пришло в голову, это использовать для этого БД. Поэтому новый алгоритм прост: - пробегаюсь по массиву - заношу в табличку индекс текущего элемента и значения того поля, по которому нужно отсортировать - SELECT index FROM sort_table ORDER BY somefield DESC LIMIT 10; Работает оно считаные доли секунд. Но только вот (по определенным причинам) не хочется для этого использовать БД. Может кто подскажет, как можно решить эту проблему средствами самого пхп? |
||||
|
|||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |