2017-08-07 1 views
0

Ich habe ein Problem, ich muss jede zweite Zeile in der Tabelle, die mit der foreach-Schleife generiert wird. Während in und für ist ein einfaches banal, so in der foreach ich vollständig weiß nicht, wie man es nimmt.Coloring jede zweite Zeile in der Foreach-Loop-Tabelle

Ich habe den Code, den ich erstellen konnte, nur ein Problem damit - es färbt alle die gleichen Zeilen.

<?php 
     $details = array_combine($_POST['detail'], $_POST['detail-description']); 
     foreach($details as $key => $value) { 
     $bg = ($i % 2 == 0) ? 'red' : 'yellow'; 
     ?> 
      <tr style="background: <?php echo $bg; ?>;"><td style="padding: 3px 10px; text-align: right; border-right: 1px solid #dbdbdb;" width="50%"> 
      <?php echo $key ?> 
      </td> 
      <td style="padding: 3px 10px; text-align: left;" width="50%"> 
      <?php echo $value; ?> 
      </td> 
      </tr> 
     <?php 
     } 
     ?> 
+2

'$ i' __must be__ erhöht werden –

+0

Was ist Ihr' $ Schlüssel', vielleicht können Sie '$ bg = ($ key% 2 == 0) verwenden? 'rot': 'gelb'; '(statt' $ i'). – xander

+0

Sie können es tun, indem Sie 'CSS' verwenden. Und das ist auch ziemlich einfach. –

Antwort

0

Der folgende Code:

<?php 
$details = array(
    "test1"=>"tester1", 
    "test2"=>"tester2", 
    "test3"=>"tester3", 
    "test4"=>"tester4", 
    "test5"=>"tester5", 
    "test6"=>"tester6", 
    "test7"=>"tester7", 
); 
$i=0; 
foreach($details as $key => $value) { 
    $i++; 
    $bg=($i%2==0?'red':'yellow'); 
    ?> 
    <table> 
     <tr style="background-color: <?php echo $bg; ?>;"> 
      <td style="padding: 3px 10px; text-align: right; border-right: 1px solid #dbdbdb;" width="50%"> 
       <?php echo $key ?> 
      </td> 
      <td style="padding: 3px 10px; text-align: left;" width="50%"> 
       <?php echo $value; ?> 
      </td> 
     </tr> 
    </table> 
    <?php 
} 
?> 

gibt diese:

enter image description here

Sie benötigen table Tags, bevor Sie background-color auf tr Tags anwenden können.

Verwandte Themen