我是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>
答案 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>
或者另一种方法是在打印内循环时选择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>
另一种奇怪的方式:(预加载随机密钥: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>
答案 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>';
?>
看起来你不想重复数组中的数字,这就是我做的事情
答案 2 :(得分:-2)
$cells = 10;
$rows = Mathf.randomint(1,10)
cell.ctable(cells,rows,name);
$return 0
这应该做朋友,享受。 ; ^)