foreach双条件循环的解决方法
在制作zblogPHP主题时,常遇到需要制作多div并排的形式,就像下图。在使用foreach函数获取相关排列的时候,又会遇到文章div定义的是不同的class格式。就像下面一张图,它的左列文章div定义的class是left,右面的定义的是right。那么foreach循环时,就需要一行隔一行的将“left,right”两个数字交替。针对这个方式,我做了需要代码:
直接上代码:
{$i=1;}
{$b=-1;}
{$aboutarray=GetList(4,null,null,null,null,null,array('is_related'=>$article->ID));}
{foreach $aboutarray as $related}
{$i=$i*$b;}
<li class="clearfix {if $i<0}right{else}left{/if}"> <a class="image" href="{$related.Url}"><img width="260" height="161" src="{$related.Img}" class="attachment-size1 wp-post-image" alt="{$related.Title}"></a>
</li>
{/foreach}
代码主要是通过正负函数的形式来进行交替,每次更新一次foreach,函数i乘以一个负数。这样,再通过if的配合判断,将“left,right”进行交替使用。
但当遇到三个或三个以上做排列时,也仅仅需要通过修改数字的特性来解决即可。