我正在显示图像并从数据库中获取所有图像。我在一行上显示两个图像,其中第一个图像的大小很大,而第二个图像的大小很小。现在第二行再次有两个图像,但这次第一个图像应该很小而第二个图像应该很大。
我正在使用PHP并使用' foreach' for循环从数据库中获取所有图像。那我该怎么做呢?这是一段代码示例:
<? foreach ($model->images as $img) { ?>
<div class="big_img">
<div class='list_img' style="background-image: url('<?= $img->url ? : UPLOAD_URL.'images/'.$img->image1?>')">
</div>
<div class="small_img">
<div class='list_img' style="background-image: url('<?= $img->url ? : UPLOAD_URL.'images/'.$img->image2?>')">
</div>
<? } ?>
答案 0 :(得分:1)
你可以有一个变量并每次都翻转它:
<?
$cont = true;
foreach ($model->images as $img) { ?>
<div class="<?php echo $cont ? 'big_img' : 'small_img'; ?>">
<div class='list_img' style="background-image: url('<?= $img->url ? : UPLOAD_URL.'images/'.$img->image1?>')">
</div>
<div class="<?php echo !$cont ? 'small_img' : 'big_img'; ?>">
<div class='list_img' style="background-image: url('<?= $img->url ? : UPLOAD_URL.'images/'.$img->image2?>')">
</div>
<? $cont = !$cont; } ?>
所以,基本上,当变量为true
时,显示大 - 小,当它是false
时,小 - 大。每次迭代都会否定变量,即true
时,它将变为false
,反之亦然。
答案 1 :(得分:0)
您可以使用模运算符来确定两种尺寸的顺序。沿着这些方向的东西(未经测试和非常粗糙):
<? $index = 0; foreach ($model->images as $img) { ?>
<div class="<? echo $index % 2 == 0 ? : 'big_img' : 'small_img'; ?>">
<div class='list_img' style="background-image: url('<?= $img->url ? : UPLOAD_URL.'images/'.$img->image1?>')">
</div>
<div class="<? echo $index % 2 == 0 ? : 'small_img' : 'big_img'; ?>">
<div class='list_img' style="background-image: url('<?= $img->url ? : UPLOAD_URL.'images/'.$img->image2?>')">
</div>
<? $index++; } ?>
答案 2 :(得分:0)
只是为了它......
你甚至可以(没有双关语)使用bitwise操作..
<?php
$index = 0;
foreach($things as $thing) {
if( ++$index & 1 ) {
// $index is odd
} else {
// $index is even
}
}
?>