| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Perl: разработка для Web > Разбивка одного массива на несколько массивов |
| Автор: Олег13 5.9.2012, 19:38 | ||||
| Всем доброго времени суток! Подскажите кто может, что-то в мозг ничего не приходит. Задача такова: В результате работы определенной функции, у меня получается одномерный массив элементов. Размер его может быть разным, от 6 элементов до 60. Как мне этот большой массив разбить на несколько малых, но так чтобы в каждом было по 6 элементов. Т.е. смысл такой: берем из большого массива первые 6 элементов и помещаем в другой массив, потом берем следующие 6 элементов из большого массива и помещаем в другой и так пока не дойдем до конца большого массива. В общем вот пример кода который я выдумал и мучаю уже второй час, но что-то не выходит.
если запускать этот вариант, то выводится просто последние 6 элементов массива. Ну и это понятно почему. Чувствую, что проблема так сказать в динамическом создании наименования массива, т.е. надо чтобы наименование массива формировалось как-то вот так:
в итоге должно было бы получиться 3 массива с именами @a0, @a6, @a12 в каждом из которых бы лежало по 6 элементов. Ну вот, надеюсь более менее понятно объяснил. Посоветуйте что сделать? Заранее спасибо! |
| Автор: Pfailed 5.9.2012, 20:52 | ||
| Это логичнее сделать через массив массивов или как его иначе называют двумерный массив. Вот вам интересный вариант
Кстати вы не написали про случай, когда количество элементов в массиве не кратно 6-ти. Возможно для этого случая код нужно будет немного исправить. |
| Автор: DurRandir 5.9.2012, 20:53 | ||
Ваша проблема называется очень просто - вы не знаете, что такое ссылки на массив:) Почитайте perldoc perlref - там array of arrays описаны. Синтаксис @array[] - это срез (прочитайте про slices в perldoc perldata). Двумерный массив делается как массив ссылок на массивы, т.е. для вашего случая:
|