【问题标题】:Print a new <tr> each time & "N" number of elements inside it, for a total quantity of "Q" [closed]每次打印一个新的 <tr> &其中的“N”个元素,总数为“Q”[关闭]
【发布时间】:2020-05-05 12:47:57
【问题描述】:

我有一个变量 Q, 我想在 HTML 表格行中打印“猫”(或其他)Q 次,只有 HTML 表格的每一行可以包含最多 5 只猫。 就像如果 Q <tr>。 & 如果 Q = 10; 然后我想打印 2 行,每行包含 5 只猫。

有人可以帮我吗?

我使用 php 作为编程语言和 HTML。 提前致谢。

【问题讨论】:

  • 请尝试自己编写代码,我们会帮助您完成工作
  • 这些答案之一是否解决了您的问题?如果没有,您能否提供更多信息来帮助回答?否则,请考虑标记最能解决您的问题的答案(上/下投票箭头下的复选标记)。见stackoverflow.com/help/someone-answers

标签: php html algorithm loops html-table


【解决方案1】:

您还可以使用array_chunk 来决定每行的块(次数),并使用str_repeat 重复一个字符串以实现您的目标。

<?php

$times = 12;
$limit_for_each_row = 5;
$string = "Cat";

echo "<table>";
foreach(array_chunk(range(1,$times),$limit_for_each_row) as $chunk){
    echo "<tr>" . str_repeat("<td>$string</td>",count($chunk)) . "</tr>";
}
echo "</table>";

演示: https://3v4l.org/EWgHh

【讨论】:

  • 感谢您的帮助
【解决方案2】:

以下代码可能会帮助您实现请求的输出:

<?php
$print_label = "meow";
$q = 15;
$steps = 5;

echo "<table>";
for($i=1;$i<=ceil($q/$steps);$i++) :
    echo "<tr>";
    for($j=1;$j<=$steps;$j++) :
        echo "<td>".$print_label."</td>";
    endfor;
    echo "</tr>";
endfor;
echo "</table>";

【讨论】:

    【解决方案3】:

    解决这个问题的一种方法是使用array_fill 来制作一个由$q 组成的数组复制单词; array_chunk 将其拆分为每行的最大字数;和implode 将每个块中的所有单词放在一起:

    $word = "cat";
    $q = 13;
    $row_max = 5;
    $words = array_fill(0, $q, $word);
    $chunks = array_chunk($words, $row_max);
    foreach ($chunks as $chunk) {
        echo '<tr><td>' . implode('</td><td>', $chunk) . '</td></tr>' . "\n";
    }
    

    输出:

    <tr><td>cat</td><td>cat</td><td>cat</td><td>cat</td><td>cat</td></tr>
    <tr><td>cat</td><td>cat</td><td>cat</td><td>cat</td><td>cat</td></tr>
    <tr><td>cat</td><td>cat</td><td>cat</td></tr>
    

    Demo on 3v4l.org

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-04-09
      • 2017-08-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-03
      相关资源
      最近更新 更多