如何使用Smarty限制通过数组的循环量?假设给定数组中有32个项目,我想将循环次数限制为8个。
{foreach from=$friend_list key=userId item=userInfo name=friend_list}
{if $smarty.foreach.friend_list.index % 8 && $smarty.foreach.friend_list.index > 0 }
</tr><tr>
{/if}
<td height='50' width='50'>
<img border='0' height='50' src='http://graph.facebook.com/{$userInfo.user_uid}/picture' style='display:block;' width='50' />
</td>
{/foreach}
由于
答案 0 :(得分:1)
{foreach from=$friend_list key=userId item=userInfo name=friend_list}
{if $smarty.foreach.friend_list.index < 8 }
{if $smarty.foreach.friend_list.index % 8 && $smarty.foreach.friend_list.index > 0 }
</tr><tr>
{/if}
<td height='50' width='50'>
<img border='0' height='50' src='http://graph.facebook.com/{$userInfo.user_uid}/picture' style='display:block;' width='50' />
</td>
{/if}
{/foreach}
阅读此Smarty - foreach loop 10 times and stop
ps:我故意将if
块留给if $smarty.foreach.friend_list.index % 8
,以防万一需要超过8个循环。否则可以删除该块(保持</tr><tr>
完整)
答案 1 :(得分:0)
在打开foreach之前添加一个计数器,
$i=1;
增加每个循环的计数器(即在foreach内部)
if($i = 8) break;
$i++;
(其中8是你的限制)
你的代码看起来都错了,所以我没有把它放进去。排除(){}问题
答案 2 :(得分:0)
这里应该处理前8个条目并忽略其余条目。不幸的是,每个人都无法摆脱Smarty。
{foreach from=$friend_list key=userId item=userInfo name=friend_list}
{if $smarty.foreach.friend_list.iteration < 8}
<td height='50' width='50'>
<img border='0' height='50' src='http://graph.facebook.com/{$userInfo.user_uid}/picture' style='display:block;' width='50' />
</td>
{/if}
{/foreach}