Любопытное наблюдение: есть две архитектуры/технологии работы с шаблонами: data-driven и presentation-driven.
В первом случае нужно заранее заготовить все о ображаемые данные (если нужны вложенные таблицы -- используем вложенные массивы) и заказываем отрисовку этих данных в шаблонах.
Во втором случае шаблон знает, ЧТО он хочет нарисовать. И шаблоны при отрисовке передаются фабрики данных, которые знают, КАКИМИ будут отрисовываемые данные.
Замечено, что сторонники разных подходов друг друга понимают с большим трудом...