如何用PHP创建随机表格?

时间:2015-10-22 23:52:11

标签: php html loops random html-table

我是PHP新手。我需要从池中随机抽取数字才能在表格中看到。 我使用for循环创建但不能填充所有随机数。 现在不幸的是,所有细胞都显示相同的数字。

  <?php
    $size = 3;
    $no = array(0,1,2,3,4,5,6,7,8,9,2,4,6,8);
    ?>
    <table>
    <?php 
    $number[] = $no[array_rand($no)];
        for ($i=0; $i < $size; $i++){
            foreach ($number as $cell)
        { ?><tr><?php
            for ($b=0; $b < $size ;$b++){
             foreach ($number as $cell){
        echo '<td>'.$cell.'</td>';
          }
         }
         }
         ?></tr><?php
        }
        ?>
        </table>

3 个答案:

答案 0 :(得分:1)

一种方法是在打印单个单元格时通过array_rand选择随机密钥,所以只需将其放在那里:

<?php $size = 3; $no = array(0,1,2,3,4,5,6,7,8,9,2,4,6,8); ?>
<table border="1">
<?php for ($i = 0; $i < $size; $i++){ ?>
    <tr>
    <?php for ($b = 0; $b < $size ;$b++) { ?>
        <td><?php echo $no[array_rand($no)]; ?></td>
    <?php } ?>
    </tr>
<?php } ?>
</table>

Sample Output

或者另一种方法是在打印内循环时选择N个键:

<?php 
$size = 3; 
$no = array(0,1,2,3,4,5,6,7,8,9,2,4,6,8);
?>
<table>
<?php for($i = 0; $i < $size; $i++) { ?>
    <tr>
    <?php foreach(array_rand($no, $size) as $keys) { ?>
        <td><?php echo $no[$keys]; ?></td>
    <?php } ?>
    </tr>
<?php } ?>
</table>

Sample Output

另一种奇怪的方式:(预加载随机密钥:p)

<?php 
$size = 3; 
$no = array(0,1,2,3,4,5,6,7,8,9,2,4,6,8);
$rands = array_map(function() use ($size, $no){
    return array_rand($no, $size);
}, array_fill(0, $size, array()));

?>
<table border="1">
<?php foreach($rands as $row){ ?>
    <tr><?php foreach($row as $c) { ?>
        <td><?php echo $no[$c]; ?></td>
    <?php } ?></tr>
<?php } ?>
</table>

Sample Output

答案 1 :(得分:1)

我的方法:

<?php
$size = 3;
$number = array(0,1,2,3,4,5,6,7,8,9,2,4,6,8);
shuffle($number);
$number_loop = 0;
echo '<table>';

for($i = 0; $i < $size; $i ++){
    echo '<tr>';
    for($j = 0; $j < $size; $j ++){
        echo '<td>' . $number[$number_loop] . '<td>';
        $number_loop ++;
    }
    echo '</tr>';
}
echo '</table>';
?>

看起来你不想重复数组中的数字,这就是我做的事情

演示:http://codepad.viper-7.com/65qAhA

答案 2 :(得分:-2)

$cells = 10;
$rows = Mathf.randomint(1,10)
cell.ctable(cells,rows,name);
$return 0

这应该做朋友,享受。 ; ^)