2016-09-14 2 views
0

Meine HTML-Struktur ist wie folgt:Wrapping alle zwei Divs in Schleife

<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> 

I for each Schleife verwenden. Nach jeweils zwei Iterationen von for each Schleife, möchte ich neue Container starten div und row 1, row 2 und row 3div s. Ich meine Haupt div sollte 3 Reihen wickeln und jede Reihe div wird zwei Bilder wickeln oder div. Ich benutze eine einzelne Schleife. Wie sollte ich den for each Schleifenzähler dafür anwenden?

+1

Bitte zeigen Sie uns Ihre foreach-Schleife. –

+0

Das klingt nach einem Job für ** 'MODULO' ** http://php.net/manual/de/internals2.opcodes.mod.php – Xatenev

Antwort

0

Angenommen, Sie haben eine Reihe von Bildern oder anderen Inhalten, die Sie in diese divs einfügen möchten. Das ist das Konzept von dem, was Sie zu tun haben, dann können Sie es anpassen, wie Sie Ihre Lieblings-Codierung Styling benötigen oder verwenden:

<?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-->'; 

Es machen wird:

<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--> 

Es mit, was Menge arbeiten von Bildern, die Sie in Ihr Array legen.

+0

Vielen Dank für die Beantwortung. Eigentlich will ich nach jeweils zwei Reihen einen neuen Container. – Javaid

+0

Der von mir bereitgestellte Code kann leicht angepasst werden, um weitere Divs hinzuzufügen/zu verschachteln. Tut mir leid, wenn es nicht funktioniert hast, kannst du mir bitte ein Beispiel geben, was du erreichen möchtest? Im Beispiel, indem Sie ein anderes if ($ key% 2 == 0) {/ * Ihren Code hier * /} hinzufügen, können Sie die Schleife hinzufügen, was Sie wollen. – luke

0

Sie Array chunk, das zu tun verwenden können, finden Sie den folgenden Code:

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