0

我有这两种布局,基本上,它可以是任何布局。我决定为此使用表格,因为使用 div 标签会在某些可能的布局类型中导致不良结果。

这里有 2 张图片描述了行和列的返回结果:

替代文字 http://acs.graphicsmayhem.com/images/SimpleLayout.png

这将返回 $layout 数组,如下所示:

$layout[0][0]
$layout[0][1]
$layout[1][1]

在此布局类型中:$layout[1][0]未设置或不存在。此处不存在第 1 行第 0 列。那么我们如何使用它来帮助我们确定行跨度......?

替代文字 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 数组有 2 个键。第一个 1 是 [ row ],第二个 key 是 [ column ]。现在遍历它们并确定它是否未设置,告诉我需要将行跨度或列跨度放入某处。我完全迷失在这里。

基本上,我想在这里返回一个数组,如下所示:

$spans['row'][ row # ][ column # ] = Number of rowspans for that <td> element.
$spans['column'][ row # ][ column # ] = Number of colspans for that <td> element.

它要么需要一个colspan,要么需要一个rowspan,对于同一个<td>元素,它肯定永远不需要两者。此外,上面的图片仅显示 2 列,可以有 2 列以上。

任何帮助将不胜感激!

4

1 回答 1

0

为什么不将 colspan 和 rowspan 数据存储在原始数组中,而不是尝试导出它们?像这样的东西:

$layout[0][0][1][1]
$layout[0][1][1][1]
$layout[1][0][2][1]
$layout[2][0][1][2]
$layout[2][1][1][1]
$layout[3][1][1][1]
于 2010-04-08T13:30:18.257 回答