【问题标题】:How to select specific value in foreach smarty?如何在 foreach smarty 中选择特定值?
【发布时间】:2013-12-11 09:30:25
【问题描述】:

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

【问题讨论】:

    标签: php arrays foreach smarty


    【解决方案1】:

    你可以这样做:

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

    查看 foreach 的 Smarty 文档页面

    【讨论】:

    • 谢谢哥们。你拯救了我的一天。
    【解决方案2】:

    添加条件以在条件满足时退出循环

    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}
    

    【讨论】:

      【解决方案3】:

      试试这个:

      {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>
      

      【讨论】:

        猜你喜欢
        • 2014-02-03
        • 1970-01-01
        • 2021-10-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-03-04
        • 1970-01-01
        相关资源
        最近更新 更多