2016-09-14 43 views
0

我的HTML结构如下:结束语每两个div在环

<div class="container"> 

<div class=row 1> 
<img src="#" /> 
<img src="#" /> 
</div> 

<div class=row 2> 
<img src="#" /> 
<img src="#" /> 
</div> 

<div class=row 3> 
<img src="#" /> 
<img src="#" /> 
</div> 

</div> 

我会用for each循环。在每循环for each循环后,我想开始新的容器divrow 1,row 2row 3div s。我的意思是主div应包装3行,每行div将包装两个图像或div。我正在使用一个循环。我应该如何为此应用for each循环计数器?

+1

请告诉我们您的foreach循环。 –

+0

这听起来像**'MODULO'的工作** http://php.net/manual/de/internals2.opcodes.mod.php – Xatenev

回答

0

假设您有一组图像或其他内容要放入这些div。这是你必须做的,那么你可以根据您的需要或使用您喜欢的编码风格适应它的概念:

<?php 

$contents = array('img1.jpg','img2.jpg','img3.jpg','img4.jpg','img5.jpg','img6.jpg'); 

echo '<div class="container">'; 

$rowCount = 0; 

foreach ($contents as $key => $value) { 

    if ($key % 2 == 0) { 

     if ($key > 0) { 

      echo "</div><!--close .row-->"; 
     } 

     $rowCount++; 

     echo '<div class="row row' . $rowCount . '"><!--opening .row-->'; 
    } 

    echo '<img src="' . $value . '" alt="This is image: ' . $value . '">'; 

} 

echo '</div><!--close .row-->'; 
echo '</div><!--close .container-->'; 

,它将使:

<div class="container"> 
    <div class="row row1"><!--opening .row--> 
     <img src="img1.jpg" alt="This is image: img1.jpg"> 
     <img src="img2.jpg" alt="This is image: img2.jpg"> 
    </div><!--close .row--> 
    <div class="row row2"><!--opening .row--> 
     <img src="img3.jpg" alt="This is image: img3.jpg"> 
     <img src="img4.jpg" alt="This is image: img4.jpg"> 
    </div><!--close .row--> 
    <div class="row row3"><!--opening .row--> 
     <img src="img5.jpg" alt="This is image: img5.jpg"> 
     <img src="img6.jpg" alt="This is image: img6.jpg"> 
    </div><!--close .row--> 
</div><!--close .container--> 

它将与任何作业量你放入阵列的图像。

+0

非常感谢您的回答。其实我想要的是每隔两排后新的容器。 – Javaid

+0

我提供的代码可以很容易地适用于添加/嵌套更多的div。对不起,如果它不起作用,请给我一个你希望完成什么的例子?例如通过添加其他if($ key%2 == 0){/ *您的代码在这里* /},您可以让循环添加任何你想要的东西。 – luke

0

您可以使用阵列块要做到这一点,看看下面的代码:

foreach (array_chunk($yourArray, 2, true) as $results) 
{ 
    <div class="row"> 
     foreach($results as $result) 
     { 
     //display it here 
     } 
    </div> 
}