php foreach循环每3个循环内爆一次

php foreach循环每3个循环内爆一次,php,Php,我需要做一个画廊。我有从01到09的图像。我需要把它们分开。第一个div必须有一个活动的类。我们需要每3张图像重复一次div。我需要的正是这个html: <div class="item active"> <div class="row"> <div class="col-sm-4"> <div class="c

我需要做一个画廊。我有从01到09的图像。我需要把它们分开。第一个div必须有一个活动的类。我们需要每3张图像重复一次div。我需要的正是这个html:

            <div class="item active">
                <div class="row">
                    <div class="col-sm-4">
                        <div class="col-item">
                            <div class="photo">
                                <img src="01.jpg" class="img-responsive" alt="a" />
                            </div>
                        </div>
                    </div>
                    <div class="col-sm-4">
                        <div class="col-item">
                            <div class="photo">
                                <img src="02.jpg" class="img-responsive" alt="a" />
                            </div>
                        </div>
                    </div>
                    <div class="col-sm-4">
                        <div class="col-item">
                            <div class="photo">
                                <img src="03.jpg" class="img-responsive" alt="a" />
                            </div>
                        </div>
                    </div>
                </div>
            </div>


            ...


            <div class="item">
                <div class="row">
                    <div class="col-sm-4">
                        <div class="col-item">
                            <div class="photo">
                                <img src="07.jpg" class="img-responsive" alt="a" />
                            </div>
                        </div>
                    </div>
                    <div class="col-sm-4">
                        <div class="col-item">
                            <div class="photo">
                                <img src="08.jpg" class="img-responsive" alt="a" />
                            </div>
                        </div>
                    </div>
                    <div class="col-sm-4">
                        <div class="col-item">
                            <div class="photo">
                                <img src="09.jpg" class="img-responsive" alt="a" />
                            </div>
                        </div>
                    </div>
                </div>
            </div>

...
但是我的代码不起作用。我不知道如何完成这个。。。 以下是我的PHP代码:

    <div id="carousel-example-generic" class="carousel slide hidden-xs" data-ride="carousel">
        <!-- Wrapper for slides -->
        <div class="carousel-inner">
            <?php 
            $countedimage = 0;
            $counteddiv = 0;
            $count = count($images_bottom);
            for ($x = 0; $x <= $count; $x++) {
                $countedimage++;
                $counteddiv++;
                if($countedimage == '4') {
                    $countedimage = 0;
                ?>
            <div class="item<?php if($counteddiv != '1') { ?> active<?php } ?>">
                <div class="row">
                    <div class="col-sm-4">
                        <div class="col-item">
                            <div class="photo">
                                <img src="<?php echo $images_bottom[$x]['popup']; ?>" class="img-responsive" alt="a" />
                            </div>
                        </div>
                    </div>
                </div>
            </div>
                <?php } ?>
                <?php } ?>

            </div>
    </div>


因此,您基本上希望为每个项目打印此部分:

<div class="col-sm-4">
    <div class="col-item">
        <div class="photo">
            <img src="<?php echo $src ?>" class="img-responsive" alt="a"/>
        </div>
    </div>
</div>
例如:

for ($x = 1; $x < 50; $x++) {
    if ($x % 5 == 0) echo $x . '<br>';
}

//   results:
//    5
//    10
//    15
//    20
//    25
//    30
//    35
//    40
//    45
($x=1;$x<50;$x++)的
{
如果($x%5==0)回显$x'
'; } //结果: // 5 // 10 // 15 // 20 // 25 // 30 // 35 // 40 // 45
在您的情况下,类似这样的方法会起作用:

<?php for ($x = 0; $x < count($images_bottom); $x++) {
    $src = $images_bottom[$x]['popup'];
    $item_active = $x==0 ? 'item active' : 'item'; // only use 'item active' first one

if ($x % 3 == 0) { // only display every 3rd time?>
    <div class="<?php echo $item_active ?>">
        <div class="row">
<?php } ?>
            <div class="col-sm-4">
                <div class="col-item">
                    <div class="photo">
                        <img src="<?php echo $src ?>" class="img-responsive" alt="a"/>
                    </div>
                </div>
            </div>
<?php if ($x % 3 == 2 || $x == count($images_bottom)-1){ // only display after every 3rd time (after items 0, 1, 2) or on last one ?>
        </div>
    </div><?php } ?>

<?php } ?>


首先,让我们从将图像分组为三的倍数开始

// An arbitrary list of image file names (used for clarity).
$images = ['image-1.jpg', 'image-2.jpg', 'image-3.jpg', 'image-4.jpg', 'image-5.jpg', 'image-6.jpg', 'image-7.jpg', 'image-8.jpg', 'image-9.jpg'];

// Separate images into groups of three.
$images = array_chunk($images, 3);
接下来我们需要看看输出。以HTML为例:

<div id="carousel-example-generic" class="carousel slide hidden-xs" data-ride="carousel">
    <div class="carousel-inner">
        <?php // Loop over each group of three images ?>
        <?php foreach ($images as $g => $group): ?>

            <div class="item <?= ($g == 0) ? 'active' : '' ?>">
                <div class="row">
                    <?php // Loop over each image in group ?>
                    <?php foreach ($group as $i => $image): ?>

                        <div class="col-sm-4">
                            <div class="col-item">
                                <div class="photo">
                                    <img src="<?= $image ?>" class="img-responsive" alt="a" />
                                </div>
                            </div>
                        </div>

                    <?php endforeach ?>
                </div>
            </div>
        </div>

        <?php endforeach ?>
    </div>
</div>


是的,将它们组合在一起,使代码更简单。。。!
// An arbitrary list of image file names (used for clarity).
$images = ['image-1.jpg', 'image-2.jpg', 'image-3.jpg', 'image-4.jpg', 'image-5.jpg', 'image-6.jpg', 'image-7.jpg', 'image-8.jpg', 'image-9.jpg'];

// Separate images into groups of three.
$images = array_chunk($images, 3);
<div id="carousel-example-generic" class="carousel slide hidden-xs" data-ride="carousel">
    <div class="carousel-inner">
        <?php // Loop over each group of three images ?>
        <?php foreach ($images as $g => $group): ?>

            <div class="item <?= ($g == 0) ? 'active' : '' ?>">
                <div class="row">
                    <?php // Loop over each image in group ?>
                    <?php foreach ($group as $i => $image): ?>

                        <div class="col-sm-4">
                            <div class="col-item">
                                <div class="photo">
                                    <img src="<?= $image ?>" class="img-responsive" alt="a" />
                                </div>
                            </div>
                        </div>

                    <?php endforeach ?>
                </div>
            </div>
        </div>

        <?php endforeach ?>
    </div>
</div>