我的要求是使用Dynamic多维数组生成HTML表头。 例如 数组就像,
$Array = ('Sr.No.'=>'',
'Subject'=>array('Maths','Sci','History','Social Sci')
'Other Activities'=>array('Sports','Computer','Social'));
HTML标题应该有行号= 2的Sr. No.标题。主题和其他活动分别具有colspan = 4和colspan = 3。它将如下所示,
数组是动态的,即可能会有子标题,如Sci可以有物理和化学。
如果查看已生成的表格。第二排有Sci标题。可能还有一行将显示Sci下的两个部分,即物理和化学。我的意思是这是一个动态数组,可能有3或4级。我需要一个适用于第n级的脚本。它可能是3,4等。我希望我的问题现在很清楚。
我能够使用递归函数显示数据。但是动态生成具有colspan和rowspan的Header是我被困住的地方。
<thead>
<tr>
<th rowspan=2>Sr.No.<th>
<th colspan=4>Subject</th>
<th colspan=3>Other Activities</th>
</tr>
<tr>
<th>Maths</th>
<th>Sci</th>
<th>History</th>
<th>Social Sci</th>
<th>Sports</th>
<th>Computer</th>
<th>Social</th>
</tr>
</thead>
答案 0 :(得分:0)
你走了:
$headers = "<thead>";
foreach ($Array as $key => $value)
{
$headers .= "<th colspan='".max(sizeOf($Array[$key]),1)."'>".$key."</th>";
}
$headers .= "</thead>";
这是一个有效的 DEMO
编辑 - 基于评论:
上面的演示有以下代码:
$Array = array("Sr.No." => "",'Subject'=>array('Maths','Sci','History','Social Sci'),
'Other Activities'=>array('Sports','Computer','Social'));
$table = "<table style='border-style: solid;'><thead>";
$headers = "<tr>";
$headers2 = $headers;
foreach ($Array as $key => $value)
{
$headers .= "<th colspan='".max(sizeOf($Array[$key]),1)."' style='border-right: 1px solid;'>".$key."</th>";
if(is_array($Array[$key]))
{
foreach ($Array[$key] as $key2 => $value2)
{
$headers2 .= "<th style='border: 1px dotted;'>".$value2."</th>";
}
}
else{$headers2 .= "<th style='border:1px dotted;'></th>";}
}
$headers .= "</tr>";
$headers2 .= "</tr>";
$table .= $headers.$headers2."</thead></table>";
echo $table;
以下是结果: