如何在foreach smarty中选择具体的价值?

时间:2013-12-11 09:30:26

标签: php arrays foreach smarty

我试图在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>

3 个答案:

答案 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