5 - 2 : 繰り返し処理(foreach)とループプロパティ
foreachの基本、name属性を使ったループ番号iterationやfirst/lastプロパティ、foreachelseを完全習得。
1. 基本構文と foreachelse
配列の全要素をループ処理します。配列が空(0件)のときのために <{foreachelse}> を用意しておくと便利です。
<{foreach from=$articles item="article" key="id"}>
<div class="article-card">
<h4><{$article.title}></h4>
<p><{$article.summary}></p>
</div>
<{foreachelse}>
<p class="no-data">現在公開されている記事はありません。</p>
<{/foreach}>
2. ループプロパティ(name 属性の指定)
name="myloop" のように名前を付けると、ループの回数や最初/最後の判定が可能になります。
<ul>
<{foreach from=$ranking item="rank" name="rankLoop"}>
<li class="<{if $smarty.foreach.rankLoop.first}>top-winner<{/if}>">
第<{$smarty.foreach.rankLoop.iteration}>位: <{$rank.name}>
(全<{$smarty.foreach.rankLoop.total}>人中)
</li>
<{/foreach}>
</ul>
| プロパティ | 値 | 説明 |
|---|---|---|
.iteration |
1, 2, 3... | 1から始まる現在のループ番号(順位表示や番号付けに最適) |
.index |
0, 1, 2... | 0から始まる現在のインデックス値 |
.first |
true / false | ループの最初の要素なら true |
.last |
true / false | ループの最後の要素なら true(区切り線の制御に便利) |
.total |
int | ループする要素の総件数 |
Publish
3335 bytes
更新: 2026-11-02 16:15 by admin