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]   

> Без описания
vadka
Отправлено: 23 Ноября, 2015 - 01:27:08
Post Id


Новичок


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


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




Здравствуйте!
Помогите пожалуйста решить проблему.
Есть массив примерно такого вида:
PHP:
скопировать код в буфер обмена
  1.  
  2. $arr = array("string1" => array(0 => array("text", "text2", "6"),
  3.                                                1 => array("text", "text2", "5"),
  4.                                                2 => array("text", "text2", "4")),
  5.                  "string2" => array(0 => array("text", "text2", "7"),
  6.                                              1 => array("text", "text2", "1"),
  7.                                              2 => array("text", "text2", "8")),
  8.                  "string3" => array(0 => array("text", "text2", "2"),
  9.                                              1 => array("text", "text2", "3"),
  10.                                              2 => array("text", "text2", "9")),
  11.                 );

Нужно отсортировать массив по последнему значению, от большего числа к меньшему (то есть 9,8,7,6,5,4...) и вывести. Подскажите, как такое реализовать?

(Отредактировано автором: 23 Ноября, 2015 - 01:29:25)

 
 Top
Faraon-san
Отправлено: 23 Ноября, 2015 - 09:54:19
Post Id



Посетитель


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


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




 
 Top
vadka
Отправлено: 23 Ноября, 2015 - 11:56:02
Post Id


Новичок


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


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




usort удалит ключи, а мне нужны неизменными.
Например я вывожу информацию из массива так:

PHP:
скопировать код в буфер обмена
  1. foreach ($arr as $key => $value)
  2. foreach ($value as $k => $v)
  3. echo "$key => $k => $v[0] = $v[1] = $v[2]<br>";


Мне нужно что бы вывод отсортировался по $v[2], но при этом $key и $k должны соответствовать $v[0], $v[1], $v[2]
 
 Top
Sail
Отправлено: 23 Ноября, 2015 - 12:25:57
Post Id



Участник


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


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




vadka пишет:
usort удалит ключи, а мне нужны неизменными.

Посмотрели-бы перечень функций справа по приведенной ссылке... Не понял
uasort()
(Добавление)
Действительно ли надо в порядке 9,8,7,6,5,4... несмотря на то, что элементы этой последовательности, идущие подряд относятся к разным массивам ("stringX")?
Тогда простой сортировкой дело не ограничится.
 
 Top
vadka
Отправлено: 23 Ноября, 2015 - 21:51:21
Post Id


Новичок


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


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




Sail Да, действительно, так и нужно. Можно все преобразовать в одномерный массив и потом сортировать через usort, но насколько будет хорошим такое решение?
 
 Top
Sail
Отправлено: 24 Ноября, 2015 - 09:39:53
Post Id



Участник


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


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




vadka, можно, например, сделать так:
Спойлер (Отобразить)

(Отредактировано автором: 24 Ноября, 2015 - 10:51:10)

 
 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