显示每个备用行PHP具有相同大小的图像

时间:2018-01-31 19:11:39

标签: php

我正在显示图像并从数据库中获取所有图像。我在一行上显示两个图像,其中第一个图像的大小很大,而第二个图像的大小很小。现在第二行再次有两个图像,但这次第一个图像应该很小而第二个图像应该很大。

我正在使用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>
 <? } ?>

3 个答案:

答案 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
    }
}

?>