【必须掌握】列表输出不同数量组合的方法
博主:紫藤心-迷途
浏览次数: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
以上,就是所有内容,虽然有些难度,当然,复制粘贴,然后修改下就可以用了。