Mar*_*ius 6 php foreach smarty
施工是这样的:
<!-- projects list -->
{if !empty($userObjects)}
<select id="projects-list" tabindex="1" name="project">
{if !isset($selected)}<option value="0">Choose project</option>{/if}
{foreach from=$userObjects item=v}
<option value="{$v.Id}" {if $selected==$v.Id}selected="selected"{/if} }>{$v.Name}
{* if it's 1st element *}
{if $smarty.foreach.v.index == 0}
{if isset($limit)}<br /><span id="projlimit">{$limit}</span> {$currency->sign}{/if}
{/if}
</option>
{/foreach}
</select>
Run Code Online (Sandbox Code Playgroud)
你可以看到我做到了
{if $smarty.foreach.v.index == 0}
Run Code Online (Sandbox Code Playgroud)
但它出了问题.在这种情况下,所有options元素都有$ limit值.怎么做好?我只需要第一个.
hdv*_*nna 18
我不想显得粗鲁,但邦迪的答案在所有情况下都不会起作用.由于PHP的数组是有序映射,因此第一个键的值不会总是为0.
在这些情况下,您可以使用@index,@iteration或@first属性.更多详细信息请参见http://www.smarty.net/docs/en/language.function.foreach.tpl#foreach.property.iteration上的智能foreach文档 .
您的问题的可能解决方案之一是:
{foreach $rows as $row}
{if $row@iteration == 1}
First item in my array
{/if}
{/foreach}
Run Code Online (Sandbox Code Playgroud)
IT *_*ogs 10
您可以使用此代码:
{foreach from=$userObjects item=v name=obj}
{if $smarty.foreach.obj.first}
This is the first item
{/if}
{if $smarty.foreach.obj.last}
This is the last item.
{/if}
{/foreach}
Run Code Online (Sandbox Code Playgroud)
你能用数组键做到这一点吗?
{foreach from=$rows key=i item=row}
{if $i == 0}
First item in my array
{/if}
{/foreach}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
20455 次 |
| 最近记录: |