我有这两种布局,基本上,它可以是任何真正的布局。我决定使用表来实现这一点,因为使用div标记会在某些可能的布局类型中导致不希望的结果。
这里有两张图片描述了行和列的返回结果:
alt text http://acs.graphicsmayhem.com/images/SimpleLayout.png
这将返回$layout数组,如下所示:
$layout[0][0]
$layout[0][1]
$layout[1][1]
在此布局类型中:
$layout[1][0]
没有设置,或者不存在。第1行,第0列在此不存在。那么我们如何利用这个来帮助我们确定行跨度。。。?
alt text http://acs.graphicsmayhem.com/images/MoreComplexLayout.png
好,此布局类型现在将返回以下内容:
$layout[0][0]
$layout[0][1]
$layout[1][0]
$layout[2][0]
$layout[2][1]
$layout[3][1]
同样,这里也有一些没有设置:
$layout[1][1]
$layout[3][0]
好的,我有一个名为$layout的数组,它对行和列执行foreach操作,但它不获取未设置的行和列。所以我创建了一个for循环(正确计算了有多少行和有多少列)。到目前为止我得到的是:
// $not_set = array();
for($x = 0; $x < $cols; $x++)
{
$f = 0;
for($p = 0; $p < $rows; $p++)
{
// $f = count($layout[$p]);
if(!isset($layout[$p][$x]))
{
$f++;
// It could be a rowspan or a Colspan...
// We need to figure out which 1 it is!
/*
$not_set[] = array(
'row' => $p,
'column' => $x,
);
*/
}
// if ($rows - count($layout[$p]))
}
}
好的,$layout数组有两个键。第一个1是[行],第二个键是[列]。
现在遍历它们并确定是否没有设置好,告诉我要么是rowspan要么是colspan需要放到某个地方。我完全迷路了。
基本上,我想在这里返回一个数组,如下所示:
$spans['row'][ row # ][ column # ] = Number of rowspans for that <td> element.
$spans['column'][ row # ][ column # ] = Number of colspans for that <td> element.
它要么需要一个科尔斯潘要么需要一个罗斯潘,它绝对不会同时需要两个
<td>
元素。另外,上面的图片只显示2列,可以有2列以上。
任何帮助都将不胜感激!