Smarty - 繰り返し処理(foreach)Advertisement繰り返し(foreach)
{foreach}
{foreachelse} {/foreach} を利用すると、解析時に配列の要素に応じた繰り返し処理を行うことが出来る。 書式
{foreach from=[配列] key=[キー] item=[アイテム] name=[このループブロックの名前]}
// 処理
{foreachelse}
// 処理
{/foreach}
foreachの繰り返し処理では、fromに割り当てられた配列の要素数分だけ自動的に繰り返し処理が実行される。繰り返しのたびに、keyに指定したテンプレート変数に配列へのアクセスキーが、itemに指定したテンプレート変数に配列の中身がそれぞれ割り当てられる。nameには、このループの名前を指定することが出来る。foreachはネストが可能なので、対象ブロックを区別することができる。
{foreachelse}を記述している場合、配列の要素が空の場合にこちらのブロックの処理が実行される。 サンプルコードforeach.php
<?php
require_once('Smarty/Smarty.class.php');
$smarty = new Smarty;
$smarty->assign("data", array("data1", "data2", "data3"));
$smarty->display('foreach.tpl');
?>
foreach.tpl
<html>
<head>
<title>foreach</title>
</head>
<body>
<ul>
{foreach from=$data key="key" item="value" name="list"}
<li>{$key}:{$value}</li>
{foreachelse}
データがない
{/foreach}
</ul>
</body>
</html>
実行結果 0:data1 1:data2 2:data3 現在のループ回数を取得するiteration変数を利用する。
{$smarty.foreach.foreachname.iteration}
Advertisement |
ショートカット・634・634ブログ ・このカテゴリのトップページに戻る ・Incubator(Pukiwiki) ・634ラボ UIコレクションギャラリー ZO-3ジェネレーター サイト検索Y!ログール |