2015-08-26 20 views
0

我的要求是,以產生具有動態多維陣列HTML表頭。 例如 陣列會像,從多維陣列生成HTML表頭動態

$Array = ('Sr.No.'=>'', 
'Subject'=>array('Maths','Sci','History','Social Sci') 
'Other Activities'=>array('Sports','Computer','Social')); 

HTML報頭應該與行跨度= 2高級號報頭。主題和其他活動分別具有colspan = 4和colspan = 3。它看起來像以下,

enter image description here

陣列是動態i.e.it可能會有子頭象,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

你可以發佈你想要最終結果看起來像什麼的HTML例子嗎? – raduation

+0

@RohitLondhe我添加了一個答案,你在這裏http://stackoverflow.com/a/32218624/4323504 –

回答

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; 

下面是結果:

enter image description here

+0

演示不起作用。我也嘗試過代碼,但它只生成第一行,即Sr.No.,Subject,Other Activities。它不會生成第二行。 –

+0

@RohitLondhe你是什麼意思試玩不工作,你所要做的就是點擊鏈接,並點擊演示運行,反正我會編輯這個答案與演示 –

+0

代碼@RohitLondhe檢查更新的答案 –