Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Чтение из csv и сортировка

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Steely
Отправлено: 08 Августа, 2016 - 22:58:08
Post Id


Новичок


Покинул форум
Сообщений всего: 2
Дата рег-ции: Авг. 2016  


Помог: 0 раз(а)




Всем привет. Однако
Начал изучать php и тут такая проблемка не знаю как сделать.
Есть csv файл с четырьмя полями:
nickname, score, time, annotation
Словом надо как то вытащить данные из csv (ну это просто и я сделал)
отсортировать их по score (там числа сортировать надо по уменьшению) там где значения в score равные там отсортировать по увеличению уже time, тоже числа.
Не могу осилить буду благодарен за помощь.
 
 Top
andrewkard
Отправлено: 09 Августа, 2016 - 00:17:21
Post Id


Участник


Покинул форум
Сообщений всего: 1372
Дата рег-ции: Нояб. 2014  


Помог: 30 раз(а)




Steely
Сортировка должна помочь:
http://www.php.su/learnphp/datatypes/?array2
 
 Top
Steely
Отправлено: 10 Августа, 2016 - 22:07:07
Post Id


Новичок


Покинул форум
Сообщений всего: 2
Дата рег-ции: Авг. 2016  


Помог: 0 раз(а)




Спасибо но...
Все равно не могу понять никак.
Сортировка это да, но там слишком много данных их как то надо собрать в список сначала?
Ой то есть в массив конечно.
Оставим пока сортировку по time, допустим нужна только сортировка по score.

(Отредактировано автором: 10 Августа, 2016 - 22:07:45)

 
 Top
andrewkard
Отправлено: 11 Августа, 2016 - 13:40:38
Post Id


Участник


Покинул форум
Сообщений всего: 1372
Дата рег-ции: Нояб. 2014  


Помог: 30 раз(а)




Steely пишет:
Оставим пока сортировку по time, допустим нужна только сортировка по score.

Вот так:
PHP:
скопировать код в буфер обмена
  1.  
  2. $data = array(
  3.     array('key1'=>'v1','key2'=>'v2','score'=>'3','key4'=>'v4'),
  4.     array('key1'=>'v1','key2'=>'v2','score'=>'2','key4'=>'v4'),
  5.     array('key1'=>'v1','key2'=>'v2','score'=>'5','key4'=>'v4'),
  6.     array('key1'=>'v1','key2'=>'v2','score'=>'1','key4'=>'v4'),
  7.     array('key1'=>'v1','key2'=>'v2','score'=>'3','key4'=>'v4'),
  8. );
  9.  
  10. function cmp($a, $b){
  11.     if ($a['score'] == $b['score']) {
  12.         return 0;
  13.     }
  14.     return ($a['score'] < $b['score']) ? -1 : 1;
  15. }
  16. usort($data,'cmp');
  17.  
  18. echo '<pre>';
  19. print_r($data);
  20.  
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Напишите за меня, пожалуйста »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB