Forum Webscript.Ru
Программирование => Perl => Тема начата: Gekt0r от 07 Марта 2008, 14:13:58
-
Всем привет, полазил по форуму и гуглу, не нашел пока решения...
Задача в следующем:
Есть двумерный массив $table []
В нем лежит таблица с расписанием занятий. Первая ячейка строки - день недели, строка вида \'ПН\', \'ВТ\', \'СР\' и т.д.
доступ к значениям ячейки - $table->- ->
- ->{value} - значение первой ячейки первой строки, $table->
- ->[1]->{value} - второй строки и т.д.
надо отсортировать весь массив по дню недели, чтобы сначала шли все понедельники, потом - вторники и т.д.
Я пока программист не очень умелый) и хочу стать лучше) нужна ваша помощь. По идее это должно быть несложно, парой строк можно сделать...
-
у меня на этуже тему вопрос дабы новую не делать напишу тут ..
$table->
$table->
$table->
$i = "0";
while ($i < \'3\') {
print "$table->
$i++;
}
как сделать тоже самое только при помощи цикла foreach ну чтоб не задавать значение $i ... ?
ЗЫ никада не пользовался двумерными массивами с синтаксисом не дружу чтото вроде foreach $temp (@table->Gekt0r
примерно так:
(@days) = (\'ПН\',\'ВТ\',\'СР\',\'ЧТ\',\'ПТ\',\'СВ\',\'ВС\');
$table->
$table->
$table->
foreach $day (@days) {
$i = "0";
while ($i < \'3\') {
if ($day eq $table->- ->[$i]->{value}) { print "\\$table->
- ->[$i]->{value} = $table->
- ->[$i]->{value}
"; }
$i++;
}
}
перебираеш дни недели в нужной последовательности ну и печатаеш или вместо print мона в другой массив сохранять уже как нада
-
>>Вот нашел << (http://php-perl.narod.ru/gl9/gl9.html) статью
двумерный массив оказывается не такая простая штука как звучит ) всю голову поломал но разобрался .. трудновато понимать када не задумывался даж никада )) во как вышло
$xx[0][0]{value} = "0";
$xx[0][1]{value} = "1";
$xx[0][2]{value} = "2";
foreach (@{$xx[0]}) {
print "${$_}{value}
";
}
ЗЫ тем кто не в курсе что означет -> и ${${$a[$i]}[$j]}[$k] советую прочитать статью ))
-
09h, идея сработала, спасибо большое!
А с ссылками в Перле гемор тот еще)
-
вобще на перле правильней было бы использовать map, sort, cmp, grep