来自for循环中随机序列的html表

Posted

技术标签:

【中文标题】来自for循环中随机序列的html表【英文标题】:html table from random sequence in a for loop 【发布时间】:2013-06-03 03:05:12 【问题描述】:

因为我是一个音乐书呆子,所以我做了一个小脚本来生成一个随机的节奏模式:

echo "X ";
for ($beats=rand(0,11); $beats>0; $beats--)
  $xo=rand(0,2);
  if ($xo==0)
    echo "x ";
  
  else 
    echo "- ";
  

它提供最多 12 个节拍的随机节奏,其中“x”表示重音节拍,第一个节拍总是重音节拍。 (示例输出:X-x-x--)

现在,为了看起来,我想将这些数据放入一个 html 表中。我希望上面示例的标记是这样的:

<table border="1">
    <tr>
        <th>Beat:</th>
        <th>1</th>
        <th>2</th>
        <th>3</th>
        <th>4</th>
        <th>5</th>
        <th>6</th>
        <th>7</th>
    </tr>
    <tr>
        <td>Accent:</td>
        <td>X</td>
        <td>-</td>
        <td>x</td>
        <td>-</td>
        <td>x</td>
        <td>-</td>
        <td>-</td>
    </tr>
</table>

唉,我的编程技巧到此结束。谁能提供一些代码来帮助解决这个问题?

【问题讨论】:

【参考方案1】:

只需在表格内生成模式:

<?php
    $numBeats=rand(0,11);
?>
<table border="1">
    <tr>
    <?php
        echo "<td>Beat:</td>";
        for ($i=1; $i<=$numBeats+1; $i++)
            echo "<td>" . $i  . "</td>";
        
    ?>
    </tr>
    <tr>
    <?php
        echo "<td>Accent:</td>";
        echo "<td>X</td>";
        for ($beats=$numBeats; $beats>0; $beats--)
          $xo=rand(0,2);
          if ($xo==0)
            echo "<td>x</td>";
          
          else 
            echo "<td>-</td>";
          
        
    ?>
    </tr>
</table>

【讨论】:

不完全——“Beat”行还必须有许多列与生成的重音标记相对应。运行代码,你就会明白我的意思了。 $beatsrand(0,11) 所以表可以有不同数量的列 - 有时是 7,有时更多,有时更少。 抱歉 - 澄清一下 - th 标签的数量(顶栏)应该随着节拍的数量而变化。因此,如果表格的底部列显示“Accents: X--X-”,顶部应显示“Beat:1 2 3 4 5”......应该生成 1 到 12 列(除了标签'左侧的重音和节拍。 这个答案总是生成 7 列 现在它会生成随机数的节拍。【参考方案2】:
<table border='1'>
  <tr>
    <th>Beat:</th>

<?
$times = rand(1,12);
$i = 1;
while ($i <= $times) 
  echo "<th>$i</th>";
  $i++;

?>

  </tr>
  <tr>
    <td>Accent:</td>
    <td>X</td>

<?
$i = 1;
while ($i <= ($times-1)) 
  if (rand(0,1))  echo "<td>x</td>";
  else echo "<td>-</td>";
  $i++;

?>

  </tr>
</table>

【讨论】:

这非常接近!乍一看,它缺少表格的“线条”,并且重音直接在“Beat”一词下开始,没有“重音”框。 对,我忘了第二行开头的“Accent”标签——现在应该没问题了。 齐亚诺,你是一个真正的文艺复兴时期的男人或女人。我将向远方的连载极客们歌颂!

以上是关于来自for循环中随机序列的html表的主要内容,如果未能解决你的问题,请参考以下文章

Python for循环语句

如何将数组中的类随机分配给for循环中创建的元素

为啥通过jQuery中的for循环后数组顺序是随机的? [复制]

Python for循环语句

Python for循环通过序列索引迭代

了解Python控制流语句——for 循环