例えば配列で以下のデータがあります。
商品情報にタイトル用のフィールドが3つある。レコードは1つ。
{$arrProduct.title1}
{$arrProduct.title2}
{$arrProduct.title3}
これをせっせと{$arrProduct.title1}{$arrProduct.title2}{$arrProduct.title3}.........と全部書くのは大変なので、増えることも想定して変数を変数で設定したいと考えて調べた結果のメモ。
■3回回すサンプル。とりあえずリテラル値「3」を設定しているがそこも変数にするのが良い。
{section name=cnt loop=3}
{var assing=str value="title"|cat:$smarty.section.cnt.iteration}
{$arrProduct.$str}
{/section}
まぁ、可能な限りPHP側でやれという話なんですけど、Smarty側でどうしてもやらないといけない場合もあるので。
■参考サイト
http://www.smarty.net/docs/ja/language.modifier.cat.tpl