loop如何输出20条数据,每5个一组,每组样式不同?

大流量超低月租电话卡

输出20条数据,使用loop输出。有可能不足20条,要考虑不足20条的情况。

前端格式:

<ul>
<li class="样式1">
         <dl>
                   <dd>1</dd>
                   <dd>2</dd>
                   <dd>3</dd>
                   <dd>4</dd>
                   <dd>5</dd>
         </dl>
</li>
<li class="样式2">
         <dl>
                   <dd>1</dd>
                   <dd>2</dd>
                   <dd>3</dd>
                   <dd>4</dd>
                   <dd>5</dd>
         </dl>
</li>
<li class="样式3">
         <dl>
                   <dd>1</dd>
                   <dd>2</dd>
                   <dd>3</dd>
                   <dd>4</dd>
                   <dd>5</dd>
         </dl>
</li>
<li class="样式4">
         <dl>
                   <dd>1</dd>
                   <dd>2</dd>
                   <dd>3</dd>
                   <dd>4</dd>
                   <dd>5</dd>
         </dl>
</li>
</ul>

$v_n从1开始计数,%求模:1/5 = 1,2/5=2,5/5=0,10/5=0,7/5=2。

实现:

<ul>
{loop table="article" limit="20" as="v"}
  {if($v_n%5==1)}
  <li>
    <dl>
  {/if}
      <dd>{$v['id']}{$v['title']}</dd>
  {if($v_n%5==0)}
    </dl>
  </li>
  {/if}
{/loop}
  {if($v_n%5!=0)}
    </dl>
  </li>
  {/if}
</ul>

如果每5组样式完全不同,那么就要对每组进行特定处理。

需要先格式化数据,将每5组数据存储到新的数组里面,然后特定处理。

{php
$newlist = [];
$i = 0;
/}
{loop table="article" limit="20" as="v"}
  {if($v_n%5==0)}
    {php $i = $i+1; /}
  {else}
    {php $newlist[$i][] = $v; /}
  {/if}
{/loop}
<!-- 处理特定数据 -->
<!-- 第一组 -->
{if($newlist[0])}
  {foreach $newlist[0] as $v}
  {/foreach}
{/if}
<!-- 第二组 -->
{if($newlist[1])}
   {foreach $newlist[1] as $v}
   {/foreach}
{/if}

以此类推......


信用卡停息挂账
返回顶部