Автор Тема: хитрая сортировка массива  (Прочитано 3117 раз)

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

Оффлайн Paul56

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 13
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
хитрая сортировка массива
« : 26 Июня 2005, 22:59:43 »
допустим есть:
$ms[1] = "news1.htm";
$ms[2] = "news10.htm";
$ms[3] = "news2.htm";
$ms[4] = "news3.htm";

а как сделать:
news1.htm news2.htm news3.htm news10.htm

наверное через sort, но не помогает.
Буду очень признателен за помощь!

Оффлайн Green Kakadu

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2757
  • +1/-0
  • 0
    • Просмотр профиля
    • http://gnezdo.webscript.ru
хитрая сортировка массива
« Ответ #1 : 26 Июня 2005, 23:19:15 »
@ordered = map { $_->[1] }
           sort { $a->
  • <=> $b->
  • }

           map { [news_num($_ ), $_] }
           @ms;

sub news_num {
my $str=shift;
if ($str=~/news(\\d+)\\.htm/) {
return  $1;
}
else {
return 999;
}
}
 в исканиях.

Оффлайн Paul56

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 13
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
хитрая сортировка массива
« Ответ #2 : 27 Июня 2005, 00:23:52 »
Green Kakadu
Спасибо большое исключительно ;-)

Оффлайн Green Kakadu

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2757
  • +1/-0
  • 0
    • Просмотр профиля
    • http://gnezdo.webscript.ru
хитрая сортировка массива
« Ответ #3 : 27 Июня 2005, 01:53:20 »
Perl CookBook Recipe 4.16 Sorting a List by Computable Field
 в исканиях.

 

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