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 :: Сортировка массива по заданному параметру

 PHP.SU

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


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

> Без описания
opa-na
Отправлено: 13 Декабря, 2010 - 14:42:29
Post Id


Новичок


Покинул форум
Сообщений всего: 9
Дата рег-ции: Июнь 2010  


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




Здравствуйте, заранее прошу прощения, если повторяюсь. Пробовал искать, тем много - но мне не подходит или у меня не получается...
Задача такая. Имее массив:
PHP:
скопировать код в буфер обмена
  1. (
  2.     [0] => Array
  3.         (
  4.             [id] => 10
  5.             [text] => 11111111111111111111111111111
  6.             [vis] => 1
  7.             [date] => 2010-12-23
  8.         )
  9.  
  10.     [1] => Array
  11.         (
  12.             [id] => 11
  13.             [text] => 22222222222222222222222222
  14.             [vis] => 1
  15.             [date] => 2010-12-04
  16.         )
  17.  
  18.     [2] => Array
  19.         (
  20.             [id] => 12
  21.             [text] => 333333333333333333333333333
  22.             [vis] => 1
  23.             [date] => 2010-12-06
  24.         )
  25.  
  26.     [3] => Array
  27.         (
  28.             [id] => 13
  29.             [text] => 444444444444444444444444
  30.             [vis] => 1
  31.             [date] => 2010-12-16
  32.         )
  33.  
  34.     [4] => Array
  35.         (
  36.             [id] => 14
  37.             [text] => 55555555555555555555555555555
  38.             [vis] => 1
  39.             [date] => 2010-03-08
  40.         )
  41.  
  42. )

И мне нужно отсортировать его по дате (последний параметр "date")/ Вот это как раз и не получается. Сортируется только по id...
Подскажите пожалуйста. Заранее благодарен.
 
 Top
DlTA
Отправлено: 13 Декабря, 2010 - 15:03:06
Post Id



Постоянный участник


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


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




array_multisort Сортировать несколько массивов или многомерные массивы

(Отредактировано автором: 13 Декабря, 2010 - 15:03:45)

 
 Top
opa-na
Отправлено: 13 Декабря, 2010 - 15:24:55
Post Id


Новичок


Покинул форум
Сообщений всего: 9
Дата рег-ции: Июнь 2010  


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




Спабо за ответ, но всё равно не понятно.
У меня вышепредстиавленный многомерный ассоциативный массив всеми функциями (в т.ч. и array_multisort) сортируется по параметру "id" (возрастание, убывание)
Может вы напишите мне как использовать функцию array_multisort для сортировки массива (скрин его выше) именно по параметру date. Прямо кусок программного кода.
Благодарен Улыбка
 
 Top
DlTA
Отправлено: 13 Декабря, 2010 - 19:26:33
Post Id



Постоянный участник


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


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




в данном случае не подходит
придется писать самостоятельный метод сортировки

могу предложить такой
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3.  $mass = array(
  4.     array('id'=>'1','date'=>'2010-11-01'),
  5.     array('id'=>'3','date'=>'2010-09-11'),
  6.     array('id'=>'2','date'=>'2010-12-10')
  7.     );
  8.  print_r($mass);
  9.  echo "<br>";
  10.  
  11.  $keyMass = array();
  12.  foreach($mass as $val)
  13.  {
  14.   $keyMass[]=$val['date'];
  15.  }
  16.  asort($keyMass);
  17.  $retmass = array();
  18.  foreach ($keyMass as $key=>$val)
  19.  {
  20.   $retmass[]=$mass[$key];
  21.  }
  22.  print_r($retmass);
  23. ?>
  24.  

(Отредактировано автором: 13 Декабря, 2010 - 19:35:02)

 
 Top
opa-na
Отправлено: 13 Декабря, 2010 - 19:47:58
Post Id


Новичок


Покинул форум
Сообщений всего: 9
Дата рег-ции: Июнь 2010  


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




Большое спасибо за ответы!
Но я уже сам нашёл более оптимальный вариант.
Так как сайтик написан с помощью codeigniter то проблемка решилась добавлением строчки $this->db->order_by('date','desc'); в функцию запроса модели Улыбка
PHP:
скопировать код в буфер обмена
  1. function getlist($tabl) {
  2.             $this->db->order_by('date','desc');
  3.             $query = $this->db->get($tabl);
  4.                 return $query->result_array();  
  5.                
  6.         }
 
 Top
OrmaJever Модератор
Отправлено: 13 Декабря, 2010 - 20:10:51
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


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




opa-na вы изначально збили с толку! что нельзя было скачать что это вывод с базы?


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
JustUserR
Отправлено: 14 Декабря, 2010 - 11:19:38
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


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




opa-na Для осуществления операций сортировки и коррекции выборки информационных полей получение которых производится из системы управления базами данных - оптималным вариатном является использование встроенных операторов и функция при включении SQL-запроса - или обеспечения создания собственной SQL-процедуры осуществляющей выполнние требуемого набора действий - указанный вариант в действительности является более предпочтительным по причине проведения работы с информационными плями на стороне сервера БД с прямым доступом к их представлению и внутренним алгоритмам индексации


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB