这听起来很愚蠢,因为在基本的html中,这是不可能的。但能不能呈现这样的桌子(不,但我有什么选择?):
<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>我真的需要这样做,因为我得到了这类数组(请参阅下面的代码),而且我无法重做它们以适应正确的图像,因为列的数量总是不同的。
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解决方案
<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解决方案
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');发布于 2014-10-14 21:07:42
经过几个小时的挣扎,我决定向一个高级php程序员询问。他还说我必须把数组弄对..。但这也是斗争。
这是怎么做的。
首先,我将所有内容放入一个数组中:
array('a1','a2','a3');
array('b1','b2','b3');这些数组成为一个数组:
$a=array(
array('a1','a2','a3'),
array('b1','b2','b3'),
)第二,你必须用某种魔法遍历这个区域,以正确的顺序得到数组等等。
foreach ($a as $i1 => $b) {
foreach($b as $i2 => $c) {
$result[$i2][$i1] = $c;
}
}在魔术之后,您应该有一个数组,在本例中,是因为count($b)==3子数组,在这些数组中,它应该有,在本例中,是因为count($a)==2项.因此:
array(
array('a1','b1'),
array('a2','b2'),
array('a3','b3'),
);发布于 2014-10-14 16:43:57
根据HTML标准,这是非法的语法。原理很简单: table > tr > td (有时也是头,tbody)。所以您的代码应该如下所示
<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验证器。
发布于 2014-10-14 16:44:28
你可以在桌子上筑巢。就像这样:
<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>从本质上说,外层表有一行,而该行每个数组有一个单元格。每个单元格有一个表,该表每个值有一行(有一个单元格)。
然后,您可以通过遍历数组来创建该输出。在伪码中:
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>"作为表的一种替代方法,请考虑如下所示:
<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>伪代码也比较清晰:
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的宽度和垂直堆栈。
https://stackoverflow.com/questions/26365879
复制相似问题