<?php
$i=0;
while($i < 101){
if($i%2==0){
echo "<tr>".PHP_EOL;
}
echo "<td>".$i."</td>".PHP_EOL;
$i++;
if($i%2==0){
echo "</tr>".PHP_EOL;
}
}
?>
This code generates a table with 100 rows and 2 columns. But what I want to do is that show ordered numbers (upp to 100) in the left side of the rowcells and show something else (ex. pow(rownumber) ) in the right side of the rowcells. How can I do that?
Try this, Will output 100 rows with the number and its power in two columns
<table>
<?php
for($i = 0; $i <= 100; $i++){
echo sprintf('<tr><td>%s</td><td>%s</td></tr>',
$i,
pow($i, 2)
);
}
?>
</table>
Is this what you are looking for?
for($i=0; i<100; i++){
if($i%2==0){
echo "<tr>".PHP_EOL;
}
echo "<td>".$i."</td>".PHP_EOL;
echo "<td>Something Else</td>".PHP_EOL;
if($i%2==0){
echo "</tr>".PHP_EOL;
}
}
You can use your modulus (and a for loop too)
for ($i = 1; $i <= 100; $i++){
$mod = ($i%2==0) ? true : false;
if($mod) echo "<tr>".PHP_EOL;
echo "<td>".$i."</td>".PHP_EOL;
echo "<td>". foo($bar) ."</td>".PHP_EOL;
if($mod) echo "</tr>".PHP_EOL;
}
<?php
$i=0;
$j=0;
while($i < 101){
if($i%2==0){
$j++;
echo "<tr>"."<td>".$j."</td>".PHP_EOL;
}
echo "<td>".$i."</td>".PHP_EOL;
$i++;
if($i%2==0){
echo "<td>any text</td>"."</tr>".PHP_EOL;
}
}
?>
Why use modulo for only two options? This solution seems much easier. Your $data
is an array of the things you want to display, currently the alphabet.
$data = range('a','z');
foreach($data as $num => $elem) {
echo "<tr>".PHP_EOL;
echo "<td>".$num.</td>".PHP_EOL;
echo "<td>".$elem.</td>".PHP_EOL;
echo "</tr>".PHP_EOL;
}
If you want to make it loop 100+ times, just make the array that size.
Foreach
documentation