Smartyでインデックス(INDEX)の表示
※実経験の記憶を頼りに自宅の PC 環境(VMWareなど)で再現している内容もあるのでご注意下さい
2008-06-15
PHP でビュー(view)に Smarty を使用している場合、ループの中でインデックス番号を表示したい時があります。Smarty でループを表現するときは、foreach や section が一般的だと思いますので foreach を例を 2 つ。次のような競馬場と地域が書いた連想配列が配列に入っていると仮定します。
$data = array(); $tmp["place"] = "関西"; $tmp["name"] = "京都競馬場"; $data[] = $tmp; $tmp["place"] = "関東"; $tmp["name"] = "東京競馬場"; $data[] = $tmp;
これを、Smarty を使って表示させてみます。その際、1 番目、2 番目というように番号を付けます。
{foreach from=$data key="key" item="value" name="d"}
{$smarty.foreach.d.iteration}, {$value.place|escape}, {$value.name|escape}<br />
{/foreach}
[表示結果]
1, 関西, 京都競馬場
2, 関東, 東京競馬場
foreach で 1 からインデックスを付ける場合は、iteration を利用します。逆に、配列のインデックスのように 0 から振りたい場合は index を使います。
関連記事
上記の記事に関連する記事(最新の10件)です。


