Smartyでの配列の取得方法について教えて下さい。

ステータスには「0, 1...」のようなコードが入っています。
これをPHP側で設定したステータス用の文字列で展開して表示したいのです。

PHP側:
$id = array(0, 1, 2);
$code = array(1, 2, 0);
$status = array("0"=>"不明", "1"=>"未完了", "2"=>"完了");
$smarty->assign('ID', $id);
$smarty->assign('CODE', $code);
$smarty->assign('STATUS', $status);

テンプレート側:
{section name=i loop=$ID}
{$STATUS.$CODE[i]}
{/section}

このままだとIllegal offset typeというエラーが表示されてしまいます。

{assign var="tmp" value=$CODE[i]}
{$STATUS.$tmp}

こちらのように、一度変数に格納すると正常に表示されるのですが、あまりスマートではないので、1行で出力する方法は無いでしょうか?