[2016] => Array
    (
        [0] => hoge
        [1] => fuga
    )

[2015] => Array
    (
        [0] => hoge
        [1] => fuga
    )

上記のような連想配列$rowsがあるとします。

これを{foreach}でキー(2016,2015)毎に実行したいのですが、
2016,2015は別々に表示させたい。

{foreach from=$rows[2016] item="row"}
  {$row}
{/foreach}

{foreach from=$rows[2015] item="row"}
  {$row}
{/foreach}

この2016(今年)と2015(去年)をうまく書くことはできないでしょうか。
↓は2015の方がうまくいかない。

{assign var="thisYear" value=$smarty.now|date_format:"%Y"}
{foreach from=$rows[$thisYear] item="row"}
  {$row}
{/foreach}

{foreach from=$rows[$thisYear-1] item="row"}
  {$row}
{/foreach}

年くらいassignなしでやりたい
↓は、まーエラーですよね。

{foreach from=$rows[$smarty.now|date_format:"%Y"] item="row"}
  {$row}
{/foreach}

あまり綺麗とは言えないが、
foreach をネストし、ifを使えば出来る。

{foreach from=$rows key="year" item="row"}
  {if $year === $smarty.now|date_format:"%Y"}
    {foreach from=$row item="value"}
      {$value}
    {/foreach}
  {/if}
{/foreach} 

{foreach from=$rows key="year" item="row"}
  {if $year === $smarty.now|date_format:"%Y"-1}
    {foreach from=$row item="value"}
      {$value}
    {/foreach}
  {/if}
{/foreach} 

もう少しスマートに書けないでしょうか。
初歩的なことかもしれませんがご教授お願いします。