ここではSmartyのsection関数を解説していきます。

基本構文
{section name=i loop=5}
{$smarty.section.i.index}、
{/section}
出力結果は「0、 1、 2、 3、 4、」 になります。
name=i
sectionに名前をつけて使用します。
loop=5
ループする回数を指定します。
初期値を設定する
{section name=i start=1 loop=5}
{$smarty.section.i.index}、
{/section}
出力結果は「1、 2、 3、 4、 」 になります。
ステップを設定する
{section name=i start=1 loop=10 step=2}
{$smarty.section.i.index}、
{/section}
出力結果は「1、 3、 5、 7、 9、 」 になります。
ステップに逆順を設定する
{section name=i loop=10 step=-2}
{$smarty.section.i.index}、
{/section}
出力結果は「9、 7、 5、 3、 1、 」 になります。
配列を渡しループさせる
php
<?php
$data = array(1,2,3,4,5,6,7,8,9);
$smarty->assign('data', $data);
tpl
{section name=i loop=$data}
{$data[i]}、
{/section}
出力結果は「1、 2、 3、 4、 5、 6、 7、 8、 9、 」になります。
連想配列を渡しループさせる
php
<?php
$data = array(
array(
name => 'Tanaka',
tel => '000-0000-0000'
),
array(
name => 'Yamada',
tel => '111-1111-1111'
),
);
$smarty->assign('data', $data);
tpl
{section name=i loop=$data}
<p>
{$data[i].name}<br />
{$data[i].tel}<br />
</p>
{/section}
出力結果
<p>
Tanaka<br />
000-0000-0000<br />
</p>
<p>
Yamada<br />
111-1111-1111<br />
</p>
$data[i][‘name’]とはアクセスできずエラーになってしまうので注意してください。
