首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >tr标签迭代10次后生成新表

tr标签迭代10次后生成新表
EN

Stack Overflow用户
提问于 2021-01-21 01:43:54
回答 2查看 63关注 0票数 0

我有一个带有循环tr标签的表,我希望在每隔一秒的tr标签后将其中断。喜欢

我的表在for循环之后如下所示。

代码语言:javascript
运行
复制
<table class="table">
    <thead>
        <tr>
        <th>Header</th>
        <th>Header</th>
        <th>Header</th>
        </tr>
    </thead>
    <tbody>
    <tr>
        <td>1</td>
        <td>2</td>
        <td>3</td>
    </tr>
    <tr>
    <td>4</td>
    <td>5</td>
    <td>6</td>
</tr>
<tr>
    <td>7</td>
    <td>8</td>
    <td>9</td>
</tr>
<tr>
<td>10</td>
<td>11</td>
<td>12</td>

在模逻辑之后,我想像这样展示它们

代码语言:javascript
运行
复制
<table class="table">
    <thead>
        <tr>
        <th>Header</th>
        <th>Header</th>
        <th>Header</th>
        </tr>
    </thead>
    <tbody>
    <tr>
        <td>1</td>
        <td>2</td>
        <td>3</td>
    </tr>
    <tr>
        <td>4</td>
        <td>5</td>
        <td>6</td>
    </tr>
    </tbody>
</table>

<table class="table">
    <thead>
        <tr>
        <th>Header</th>
        <th>Header</th>
        <th>Header</th>
        </tr>
    </thead>
    <tbody>
     <tr>
        <td>7</td>
        <td>8</td>
        <td>9</td>
    </tr>
    <tr>
        <td>10</td>
        <td>11</td>
        <td>12</td>
    </tr>
    </tbody>
</table>

到目前为止,这是我的PHP脚本。我尝试了所有的安排,但都不能实现这些布局

代码语言:javascript
运行
复制
<?php $num = 1; ?>
<table class="Table">
    <thead>
        <tr>
        <th>Header</th>
        <th>Header</th>
        <th>Header</th>
        </tr>
    </thead>
    <tbody>
<?php 
for ( $x = 1; $x <= 12; $x++ ) { 
    if($num%2 == 0) { 
?>
        <tr>
            <td>Cell</td>
            <td>Cell</td>
            <td>Cell</td>
        </tr>
<?php   
    } 
?>

<?php 
    if($num %2 == 1) { 
?>
<table class="Table">
    <thead>
        <tr>
        <th>Header</th>
        <th>Header</th>
        <th>Header</th>
        </tr>
    </thead>
    <tbody>
<?php   
    } 
    $num++;
} 
?>
    </tbody>
</table>

我知道我在犯一个愚蠢的错误,但我不能弄清楚。

我很感谢你的帮助。

EN

回答 2

Stack Overflow用户

发布于 2021-01-21 02:02:57

对于动态表,您可以迭代整个表并设置两个TR值。

使用您的示例:

代码语言:javascript
运行
复制
<?php $total = 100; ?>
<?php for ($i=0; $i < $total; $i+=6):?>  
<table class="table">
    <thead>
        <tr>
        <th>Header</th>
        <th>Header</th>
        <th>Header</th>
        </tr>
    </thead>
    <tbody>
    <tr>
        <td><?=$i+1?></td>
        <td><?=$i+2?></td>
        <td><?=$i+3?></td>
    </tr>
    <tr>
        <td><?=$i+4?></td>
        <td><?=$i+5?></td>
        <td><?=$i+6?></td>
    </tr>
    </tbody>
</table>
<?php endfor; ?>

将生成每个具有两个<tr>$total/6

票数 0
EN

Stack Overflow用户

发布于 2021-01-21 02:07:47

创建一个返回表的函数。对于大小为6的每个数据集,调用该函数并获取表。您可以使用array_chunk将数据集分成更小的块,并使用heredoc语法以获得更好的可读性。

getTable()函数:

代码语言:javascript
运行
复制
<?php

function getTable($data){
    $table = <<<EOD
<table class="table">
    <thead>
        <tr>
        <th>Header</th>
        <th>Header</th>
        <th>Header</th>
        </tr>
    </thead>
    <tbody>
EOD;
    $rows = "";
    foreach(array_chunk($data,3) as $values){
        $rows .= "<tr>";
        foreach($values as $value){
            $rows .= "<td>" . $value . "</td>";
        }
        $rows .= "/<tr>";
    }
    
    $table .= $rows;
    $table .= <<<EOD
    </tbody>
    </table>
EOD;
    return $table;
}

驱动代码:

代码语言:javascript
运行
复制
<?php

$arr = [1,2,3,4,5,6,7,8,9,10,11,12];

foreach(array_chunk($arr,6) as $set_for_table){
    echo getTable($set_for_table);
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65814801

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档