Автор Тема: Сортировка ассоциативного массива  (Прочитано 2764 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Foshvad

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 307
  • +0/-0
  • 0
    • Просмотр профиля
Многоуважаемые, подскажите, кто знает.
Как отсоритровать ассоциативный массив по определенному полю?

То есть, например, есть массив:



$books[] = array (
   \'author\' => "$author",
   \'pages\' => "$pages",
);



$books[0][pages] - будет количество страниц в книге. Так вот как отсортировать этот массив книг по количеству страниц?

Оффлайн MHz

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 44
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.jafar.ru
Feci, quod potui, faciant meliora potentes

Оффлайн Foshvad

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 307
  • +0/-0
  • 0
    • Просмотр профиля
Сортировка ассоциативного массива
« Ответ #2 : 29 Ноября 2001, 14:50:36 »
Эт я читал.... :( Как мне определить параметр, по которому будет сортировка? По author или по pages?
Сортировка, ведь не элементов внутри определенного $books[], а всех $books[]!

Оффлайн MHz

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 44
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.jafar.ru
Сортировка ассоциативного массива
« Ответ #3 : 29 Ноября 2001, 15:56:04 »
http://www.php.net/manual/en/function.array-multisort.php

// Копируешь массив страниц в другой массив:
reset $books;
$book_pages = array();
foreach ($books as $pages) {
 $book_pages[] = $pages[\'pages\'];
}

// сортируешь один массив в соотвествии с другим
array_multisort($book_pages, $books);

По-идее, должно работать, но я не уверен ;-)
Да и лучше сделать можно, наверно, я не разбирался с этой функцией.
Feci, quod potui, faciant meliora potentes

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28