代码之家  ›  专栏  ›  技术社区  ›  M-Farah

两个嵌套foreach

  •  1
  • M-Farah  · 技术社区  · 7 年前

    我在数据库中有两个表第一个是 $slide_images 其次是 $why_us 我用猫头鹰旋转木马做图像。

    • 这个 $ SLIDEDY图像 包含10行。
    • 这个 怀俄斯 包含3行。

    我要每张照片都拍一行 怀俄斯 这意味着前3张图片的文本来自 怀俄斯 表。 我尝试了很多方法来实现这一点,但是它没有给我我想要的,我不能编辑表来实现这一点,并且ID列也没有嵌套来将它们与SQL连接起来。 我可以用嵌套的foreach来解决它们吗?

    <div class="home_area">
                <!-- start Carousel -->
            <div class="owl-carousel block_1">
                    <?php
                    if(is_array($slide_image)){
                    foreach($slide_image as $src){
                ?>  
                <div class="overlay-text">
                    <div class="carousel_item" style="background-image:url('<?php echo base_url(); echo $src->url; ?>');"></div>
                        <div class="text-layer">
    
                            <!--============ start we us ================ -->
                                <?php if($why_us != ''){ ?>
                                    <div class="we">
                                        <div class="container">
                                            <div class="row">
                                                    <?php foreach($why_us as $we){ ?>
                                                        <div class="box">
                                                            <h6><?php echo $we->name; ?></h6>
                                                            <div class="text"><?php echo $we->desc; ?></div>
                                                        </div>
                                                <?php }?>
                                            </div>
                                        </div>
                                    </div>
                                <?php } ?>
                            <!--============= end we us ========== -->
    
                        </div>
                </div>
                <?php } }?>
            </div>
            <!-- end Carousel -->
    </div>
    

    我希望我能很好地描述我的问题。

    1 回复  |  直到 7 年前
        1
  •  3
  •   Barmar    7 年前

    不应使用嵌套循环。在数组之间创建一个叉积。

    相反,应该只有一个循环使用两个数组的对应元素。因为其中一个数组较小,所以应该检查索引是否存在。

    foreach ($slide_image as $index => $src) {
        // code that uses `$src` here
        if (isset($why_us[$index])) {
            $we = $why_us[$index];
            // code that uses $we here
        }
    }