首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 ><tr>内有<tr>的表

<tr>内有<tr>的表
EN

Stack Overflow用户
提问于 2014-10-14 16:38:17
回答 3查看 108关注 0票数 0

这听起来很愚蠢,因为在基本的html中,这是不可能的。但能不能呈现这样的桌子(不,但我有什么选择?):

代码语言:javascript
复制
<table>
    <td>
        <tr>col 1 row 1</tr>
        <tr>col 1 row 2</tr>
        <tr>col 1 row 3</tr>
    </td>
    <td>
        <tr>col 2 row 1</tr>
        <tr>col 2 row 2</tr>
        <tr>col 2 row 3</tr>
    </td>
</table>

我真的需要这样做,因为我得到了这类数组(请参阅下面的代码),而且我无法重做它们以适应正确的图像,因为列的数量总是不同的。

代码语言:javascript
复制
array('col 1 row 1', 'col 1 row 2', 'col 1 row 3');
array('col 2 row 1', 'col 2 row 2', 'col 2 row 3');

HTML作为PHP解决方案都是有帮助的

想要的产出:

用于html解决方案

代码语言:javascript
复制
<table>
    <tr>
        <td>col 1 row 1</td>
        <td>col 2 row 1</td>
    </tr>
    <tr>
        <td>col 1 row 2</td>
        <td>col 2 row 2</td>
    </tr>
    <tr>
        <td>col 1 row 3</td>
        <td>col 2 row 3</td>
    </tr>
</table>

对于php解决方案

代码语言:javascript
复制
array('col 1 row 1', 'col 2 row 1');
array('col 1 row 2', 'col 2 row 2');
array('col 1 row 3', 'col 2 row 3');
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-10-14 21:07:42

经过几个小时的挣扎,我决定向一个高级php程序员询问。他还说我必须把数组弄对..。但这也是斗争。

这是怎么做的。

首先,我将所有内容放入一个数组中:

代码语言:javascript
复制
array('a1','a2','a3');
array('b1','b2','b3');

这些数组成为一个数组:

代码语言:javascript
复制
$a=array(
    array('a1','a2','a3'),
    array('b1','b2','b3'),
)

第二,你必须用某种魔法遍历这个区域,以正确的顺序得到数组等等。

代码语言:javascript
复制
foreach ($a as $i1 => $b) {
    foreach($b as $i2 => $c) {
        $result[$i2][$i1] = $c;
    }
}

在魔术之后,您应该有一个数组,在本例中,是因为count($b)==3子数组,在这些数组中,它应该有,在本例中,是因为count($a)==2项.因此:

代码语言:javascript
复制
array(
    array('a1','b1'),
    array('a2','b2'),
    array('a3','b3'),
);
票数 0
EN

Stack Overflow用户

发布于 2014-10-14 16:43:57

根据HTML标准,这是非法的语法。原理很简单: table > tr > td (有时也是头,tbody)。所以您的代码应该如下所示

代码语言:javascript
复制
<table>
    <tr>
        <td>
            <table>
                <tr><td>col 1 row 1</td></tr>
                <tr><td>col 1 row 2</td></tr>
                <tr><td>col 1 row 3</td></tr>
            </table>
        </td>
        <td>
            <table>
                <tr><td>col 2 row 1</td></tr>
                <tr><td>col 2 row 2</td></tr>
                <tr><td>col 2 row 3</td></tr>
            </table>
        </td>
    </tr>
</table>

您的代码可能会在大多数流行的浏览器上工作,因为它们的引擎正试图“修复”这样的错误,尽管它们总是面对W3验证器

票数 1
EN

Stack Overflow用户

发布于 2014-10-14 16:44:28

你可以在桌子上筑巢。就像这样:

代码语言:javascript
复制
<table>
  <tr>
    <td>
      <table>
        <tr><td>col 1 row 1</td></tr>
        <tr><td>col 1 row 2</td></tr>
        <tr><td>col 1 row 3</td></tr>
      </table>
    </td>
    <td>
      <table>
        <tr><td>col 2 row 1</td></tr>
        <tr><td>col 2 row 2</td></tr>
        <tr><td>col 2 row 3</td></tr>
      </table>
    </td>
  </tr>
</table>

从本质上说,外层表有一行,而该行每个数组有一个单元格。每个单元格有一个表,该表每个值有一行(有一个单元格)。

然后,您可以通过遍历数组来创建该输出。在伪码中:

代码语言:javascript
复制
echo "<table>"
echo "<tr>"
for each array in arrays
  echo "<td>"
  echo "<table>"
    for each item in array
      echo "<tr>"
      echo "<td>"
      echo item
      echo "</td>"
      echo "</tr>"
  echo "</table>"
  echo "</td>"
echo "</td>"
echo "</table>"

作为表的一种替代方法,请考虑如下所示:

代码语言:javascript
复制
<div>
  <span>col 1 row 1</span>
  <span>col 1 row 2</span>
  <span>col 1 row 3</span>
</div>
<div>
  <span>col 2 row 1</span>
  <span>col 2 row 2</span>
  <span>col 2 row 3</span>
</div>

伪代码也比较清晰:

代码语言:javascript
复制
for each array in arrays
  echo "<div>"
  for each item in array
    echo "<span>"
    echo item
    echo "</span>"
  echo "</div>"

这就将将输出样式设置为CSS的责任,如果这不是技术上的表格数据,那么在这种情况下,CSS可以说是属于CSS的。div的样式可以被设置为彼此之间的浮动(如果它们比页面更宽的话,应该由您来做.包装到新行的浮动div或推水平),span的样式可以填充div的宽度和垂直堆栈。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26365879

复制
相关文章

相似问题

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