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>
4 Réponses :
$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...
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 ++ code> aurait dû être déplacé une ligne.
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>
Cela vous donnerait une superbe table et pour la boucle concept -
Je ne pense pas que c'est exactement ce que l'OP voulait ... Lisez la question.
<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>
il devrait = si ($ i% 2 == 0) écho '