Программирование > Perl

Сортировка двумерного массива

(1/1)

Gekt0r:
Всем привет, полазил по форуму и гуглу, не нашел пока решения...
Задача в следующем:
Есть двумерный массив $table []
В нем лежит таблица с расписанием занятий. Первая ячейка строки - день недели, строка вида \'ПН\', \'ВТ\', \'СР\'  и т.д.
доступ к значениям ячейки - $table->[0]->[0]->{value} - значение первой ячейки первой строки, $table->[0]->[1]->{value} - второй строки и т.д.
надо отсортировать весь массив по дню недели, чтобы сначала шли все понедельники, потом - вторники и т.д.
Я пока программист не очень умелый) и хочу стать лучше) нужна ваша помощь. По идее это должно быть несложно, парой строк можно сделать...

09h:
у меня на этуже тему вопрос дабы новую не делать напишу тут ..

$table->[0]->[0]->{value} = "СР";
$table->[0]->[1]->{value} = "ЧТ";
$table->[0]->[2]->{value} = "ВТ";

$i = "0";
while ($i < \'3\') {
print "$table->[0]->[$i]->{value}";
$i++;
}

как сделать тоже самое только при помощи цикла foreach  ну чтоб не задавать значение $i ... ?
ЗЫ никада не пользовался двумерными массивами с синтаксисом не дружу чтото вроде foreach $temp (@table->[0]...) { нада..

Gekt0r
примерно так:

(@days) = (\'ПН\',\'ВТ\',\'СР\',\'ЧТ\',\'ПТ\',\'СВ\',\'ВС\');

$table->[0]->[0]->{value} = "СР";
$table->[0]->[1]->{value} = "ЧТ";
$table->[0]->[2]->{value} = "ВТ";

foreach $day (@days) {

$i = "0";
while ($i < \'3\') {
if ($day eq $table->[0]->[$i]->{value}) { print "\\$table->[0]->[$i]->{value} = $table->[0]->[$i]->{value}
"; }
$i++;
}

}

перебираеш дни недели в нужной последовательности ну и печатаеш или вместо print мона в другой массив сохранять уже как нада

09h:
>>Вот нашел

Gekt0r:
09h, идея сработала, спасибо большое!
А с ссылками в Перле гемор тот еще)

ravshaniy:
вобще на перле правильней было бы использовать map, sort, cmp, grep

Навигация

[0] Главная страница сообщений

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 
Перейти к полной версии