How to display two table columns per row in php loop
You can use array_chunk()
to split an array of data into smaller arrays, in this case of length 2, for each row.
<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>
Note that if you have an odd number of values, this will leave a final row with only one cell. If you want to add an empty cell if necessary, you could check the length of $row
within the outer foreach
.
$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 time
ps: 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...
This would give you great table and for loop concept--
<table border="1" cellspacing="0" cellpadding="2"><?php for($x=1; $x<=20; $x++) { echo "<tr>"; for($y=1; $y<=20; $y++) { echo "<td>"; echo $x*$y; echo "</td>"; } echo "</tr>"; }?></table>