需要删除所有这些语句后的第一个元素,我尝试将key=i
添加到第二个foreach
,然后添加{if $i!=0}
,但它对我不起作用,因为我有多级系统并且在所有if
语句之后,所有页面的$i
首先不同。
{foreach from=$page.path item=e}
{assign var=element value=0}
{foreach from=$menu3 item=r}
{if $e.page_id==$r.page_id}{assign var=element value=$r}{/if}
{if $element._left < $r._left && $element._right > $r._right}
{if $r._level==$element._level+1 && $r._level==$page._level}
<a href="{$r.url}">{$r.name}</a>
{/if}
{/if}
{/foreach}
{/foreach}
P.S。抱歉我的英文。
答案 0 :(得分:0)
为您添加一个名称foreach并执行类似的操作以获取索引
{foreach from=$items key=myId item=i name=foo}
{$smarty.foreach.foo.index} <!-- It will show index -->
{/foreach}
答案 1 :(得分:0)
我假设您不想在每个菜单中显示第一个元素,对吗?
{foreach from=$page.path item=e}
{assign var=first_skipped value=0}
{assign var=element value=0}
{foreach from=$menu3 item=r}
{if !$first_skipped}
{assign var=first_skipped value=1}
{else}
{if $e.page_id==$r.page_id}{assign var=element value=$r}{/if}
{if $element._left < $r._left && $element._right > $r._right}
{if $r._level==$element._level+1 && $r._level==$page._level}
<a href="{$r.url}">{$r.name}</a>
{/if}
{/if}
{/if}
{/foreach}
{/foreach}