Smarty - foreach循环10次并停止

CLi*_*own 13 foreach smarty

我使用以下Smarty代码:

{foreach from=$entries key=i item=topic}
  {if $topic.topic_style == question}
    <li>
      <a href="topic.php?id={$topic.id}">{$topic.title}</a>
    </li>
  {/if}
{/foreach}
Run Code Online (Sandbox Code Playgroud)

我怎样才能{foreach}最多10次然后停止?

hsz*_*hsz 30

你可以使用indexbreak功能:

{foreach from=$entries key=i item=topic name=foo}
  {if $smarty.foreach.foo.index == 10}
    {break}
  {/if}
  {if $topic.topic_style == question}
    <li>
      <a href="topic.php?id={$topic.id}">{$topic.title}</a>
    </li>
  {/if}
{/foreach}
Run Code Online (Sandbox Code Playgroud)

这里描述了中断功能:

打破Smarty的/ Dwoo的foreach

  • 你可以用{php} break; {/ php}替换{break}并避免使用插件. (2认同)

acm*_*cme 26

你可以使用array_slice:

{foreach $entries|@array_slice:0:10 as $topic}
  ...
{/foreach}
Run Code Online (Sandbox Code Playgroud)


Dom*_*ger 8

用途index:

{foreach from=$entries key=i item=topic name=foo}
  {if $smarty.foreach.foo.index < 10}
    {if $topic.topic_style == question}
      <li>
        <a href="topic.php?id={$topic.id}">{$topic.title}</a>
      </li>
    {/if}
  {/if}
{/foreach}
Run Code Online (Sandbox Code Playgroud)