PHP的条件

问题描述 投票:-1回答:2

我仍然是PHP的新手,并试图弄清楚我在网站上找到的问题。在屏幕截图中,最后一个div.image-group应该在div.image-row内部,其中只有两个项目 - 基本上,我总是希望div.image-groupdiv.image-row内,最多应该容纳三个div.image-group(但第一个div.image-row可能包含更少)。

enter image description here

任何人都可以指出我正确的方向来纠正这个问题吗?

这是代码:

<?php $counter = 0; ?>
    <?php foreach ($rows as $id => $row): ?>
        <?php $counter++; ?>
        <?php if ($counter % 3 == 1 || $counter === 1) { ?>
            <div class="image-row small clearfix">
        <?php } ?>
                <div class="image-group"><?php print $row; ?></div>
        <?php if (($counter != 1 && $counter % 2 == 1) || ($id == count($rows) -1 && $counter % 2 != 1)) { ?>   
            </div>
        <?php } ?>
    <?php endforeach; ?>
php
2个回答
3
投票

如果您在开始时将原始数组分成三个一组,则代码将更简单。

<?php foreach (array_chunk($rows, 3) as $image_row): ?>
    <div class="image-row small clearfix">
        <?php foreach ($image_row as $image_group): ?>
            <div class="image-group"><?= $image_group ?></div>
        <?php endforeach; ?>
    </div>
<?php endforeach; ?>

1
投票

第二个条件应该是:

    <?php if ($counter % 3 == 0 || $counter == count($rows)) { ?>

$counter % 3 == 0在每第三排后都是真的,而$counter == count($rows)在最后一排之后是真的。

© www.soinside.com 2019 - 2024. All rights reserved.