我试图在foreach循环中从我的数组中只获取3个值。我不知道该怎么做。
在下拉列表中,现在我从数组中获取了所有五个值。但我只需要从数组中开始3个值而不是4和5。
我的代码: -
<select class="userCountryMapSelectMetrics" style="float:right;margin-right:0;margin-bottom:5px;max-width: 9em;font-size:10px">
{foreach from=$metrics item=metric}
<option value="{$metric[0]}" {if $metric[0] == $defaultMetric}selected="selected"{/if}>{$metric[1]}</option>
{/foreach}
</select>
输出: -
<option value="nb_visits" selected="selected">Visits</option>
<option value="nb_actions">Actions</option>
<option value="nb_actions_per_visit">Actions per Visit</option>
<option value="avg_time_on_site">Avg. Time on Website</option>
<option value="bounce_rate">Bounce Rate</option>
我需要输出: -
<option value="nb_visits" selected="selected">Visits</option>
<option value="nb_actions">Actions</option>
<option value="nb_actions_per_visit">Actions per Visit</option>
答案 0 :(得分:0)
添加条件以在条件满足时退出循环
i = 0;
{foreach from=$metrics item=metric}
<option value="{$metric[0]}" {if $metric[0] == $defaultMetric}selected="selected"{/if}>{$metric[1]}</option>
if (++i == 3) {break;}
{/foreach}
答案 1 :(得分:0)
试试这个:
{if $smarty.foreach.metric.index==3}{break}{/if}
代码:
<select class="userCountryMapSelectMetrics" style="float:right;margin-right:0;margin-bottom:5px;max-width: 9em;font-size:10px">
{foreach from=$metrics item=metric}
{if $smarty.foreach.metric.index==3}{break}{/if}
<option value="{$metric[0]}" {if $metric[0] == $defaultMetric}selected="selected"{/if}>{$metric[1]}</option>
{/foreach}
</select>
答案 2 :(得分:0)
你可以这样做:
<select class="userCountryMapSelectMetrics" style="float:right;margin-right:0;margin-bottom:5px;max-width: 9em;font-size:10px">
{foreach from=$metrics item=metric name=myMetric}
{if $smarty.foreach.myMetric.iteration <= 3}
<option value="{$metric[0]}" {if $metric[0] == $defaultMetric}selected="selected"{/if}>{$metric[1]}</option>
{/if}
{/foreach}
</select>
请参阅Smarty文档页面foreach