У меня есть эти 2 типа макетов, в принципе, это может быть любой макет на самом деле.Я решил использовать таблицы для этого, так как использование тегов div приводит к нежелательным результатам в некоторых возможных типах макета.
Вот 2 рисунка, которые описывают возвращенные результаты строки и столбца:
alt text 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 - это [строка], а вторая клавиша - [столбец].Теперь перебирая их все и определяя, не установлен ли он, я получаю сообщение о том, что во что-то нужно поместить или строку, или кольспан.Я полностью потерян здесь.
По сути, я хотел бы, чтобы здесь возвращался массив, что-то вроде этого:
$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 столбцов.
Любая помощь будет принята с благодарностью!