возможно {html_table} может помочь.В противном случае вы можете перебирать строки и столбцы так, как вам нравится:
{foreach $val as $row}
{if $row@first}
<table>
<tbody>
{/if}
{foreach $row as $cell}
{if $cell@first}
<tr>
{/if}
<td>{$cell|escape:"html}</td>
{if $cell@last}
</tr>
{/if}
{foreach}
{if $row@last}
</tbody>
</table>
{/if}
{foreachelse}
<p>No Data</p>
{/foreach}
(синтаксис Smarty3 {foreach} )
Вы также можете выводить ячейки'ключи:
{foreach $val as $row}
{if $row@first}
<table>
<thead>
<tr>
{foreach $row as $cell}
<th>{$cell@key|escape:"html}</th>
{/foreach}
</tr>
</thead>
<tbody>
{/if}
{foreach $row as $cell}
{if $cell@first}
<tr>
{/if}
<td>{$cell|escape:"html}</td>
{if $cell@last}
</tr>
{/if}
{foreach}
{if $row@last}
</tbody>
</table>
{/if}
{foreachelse}
<p>No Data</p>
{/foreach}