您现在的位置是:首页 > CMS教程 > 极致CMS

【必须掌握】列表输出不同数量组合的方法

博主:紫藤心-迷途    浏览次数:426次

1. 奇偶数交替输出不同格式的列表(难度:易)

如:第一行的class="left",第二行的class="right"

{loop table="article" limit="24" isshow="1" as="v"}
{if($v_n%2==1)}
<div class="left">{$v['title']}</div>
{else}
<div class="right">{$v['title']}</div>
{/if}
{/loop}

可以应用到loop和栏目列表

2. 输出相同数量分组的列表(难度:中)

如:3个为一组,一组组输出

(1)在列表内根据每行数量判断

{foreach $lists as $v}
{if($v_n%3==0)}
<div class="abc">
{/if}

<p>{$v['title']}</p>

{if($v_n%3==2)}
</div>
{/if}

{/loop}
{if($v_n%3!=2)}
</div>
{/if}

注意最后一个标签是在foreach后面的,别忘记了

(2)先分组后输出

{php
$newlist = [];
$i = 0
foreach($lists as $k=>$v){
    $newlist[$i][]=$v;
    if($k%3==2){
        $i++;
    }

}


/}

{foreach $newlist as $v}
<div class="abc">
    {foreach $v as $vv}
    <p>{$vv['title']}</p>
    {/foreach}
</div>

{/foreach}

3. 交替输出每行不同数量的列表(难)

这种实在有“亿”点点麻烦,不过也不是不能实现,我们使用先分组后输出的方式。

如:第一行3个为一组,第二行4个为一组,循环输出

{php
$newlist = [];
$i = 0;
foreach($lists as $v){
    $newlist[$i][]=$v;
    if($i%2==0){
        if($k%3==2){
            $i++;
        } 
    }else{
        if($k%4==3){
            $i++;
        } 
    }
    

}


/}


{foreach $newlist as $v}
{if($v_n%2==0)}
<div class="abc1">
    {foreach $v as $vv}
    <p>{$vv['title']}</p>
    {/foreach}
</div>
{else}
<div class="abc2">
    {foreach $v as $vv}
    <p>{$vv['title']}</p>
    {/foreach}
</div>
{/if}

{/foreach}

那么,如何将loop转换成foreach去处理输出呢?

这个也简单,多一次循环罢了,如下:

{php
$lists = [];
/}
{loop table="article" isshow="1" limit="24" as="v"}
{php
$lists[]=$v;
/}
{/loop}

这样就得到了$lists,之后就可以使用foreach 输出 $lists

以上,就是所有内容,虽然有些难度,当然,复制粘贴,然后修改下就可以用了。

文章关键词: 列表输出
分享到: / / /
  • 点击此处扫一扫二维码,直接手机访问此页