<?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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top