12
votes

Comment afficher deux colonnes de table par ligne en boucle PHP

Je voudrais afficher des données, deux colonnes par ligne pendant mon forach. J'aimerais que mon résultat ressemble à ce qui suit:

 <table>
 <tr><td>VALUE1</td><td>VALUE2</td></tr>
 <tr><td>VALUE3</td><td>VALUE4</td></tr>
 <tr><td>VALUE5</td><td>VALUE6</td></tr>
 </table>


0 commentaires

4 Réponses :


11
votes
$i=0;
foreach ($x as $key=>$value)
  {
  if (fmod($i,2)) echo '<tr>';
  echo '<td>',$value,'</td>';
  if (fmod($i,2)) echo '</tr>';
  $i++;
  }
this will output TR (row) each second timeps: i haven't tested the code, so maybe you will need to add ! sign before fmod, if it doesn't output TR on first iteration, but on second iteration in the beginning...

3 commentaires

Merci, cela fonctionne bien. Oui, je devais ajouter! Fmod pour le premier.


@ Fredstevens-Smith: au lieu de dire «ne fonctionne pas», pourquoi ne pas élaborer un peu. Pourquoi ça ne marche-t-il pas? Avez-vous reçu une erreur? Comment pourrait-il être amélioré?


Votre code semble contenir une erreur; $ i ++ aurait dû être déplacé une ligne.



44
votes

Vous pouvez utiliser array_chunk () code> pour scinder un tableau de données en matrices plus petites, dans ce cas de longueur 2, pour chaque ligne.

<table>
<?php foreach (array_chunk($values, 2) as $row) { ?>
    <tr>
    <?php foreach ($row as $value) { ?>
        <td><?php echo htmlentities($value); ?></td>
    <?php } ?>
    </tr>
<?php } ?>
</table>


0 commentaires

1
votes

Cela vous donnerait une superbe table et pour la boucle concept - xxx


1 commentaires

Je ne pense pas que c'est exactement ce que l'OP voulait ... Lisez la question.



-1
votes
<table>
<?php
   $i=0;
   foreach ($x as $key=>$value)
   {
      if (!$i%2) echo '<tr>';
      echo '<td>',$value,'</td>';
      if ($i%2) echo '</tr>';
      $i++;
   }
?>
</table>

1 commentaires

il devrait = si ($ i% 2 == 0) écho '';