2011-07-24 102 views
3

填充PHP數組到HTML表格填充PHP數組到HTML表格

我有一個PHP陣列(比如$ rows2),其給出了在鍵 - 值對下面的輸出數據。 我想這個數據格式化爲一個HTML表格:

0 => Month: 
1 => 07/2011, 
2 => 7-8 
3 =>/1432 A.H 
4 => 
5 => Location: 
6 => Plainfield, 
7 => NJ, 
8 => USA 
9 => Calculation Method: 
10 => Value 10 
11 => 
12 => Juristic Method: 
13 => Standard 

我試着用下面的代碼來填充表:

echo '<table border=1>'; 
while (list($key, $value) = each($rows2)) { 

    echo $value2.$value; 
     if($i%5 == 0){ 
      echo '<tr><td>'.$value2.'</td></tr>'; 

     } 
     $value2=''; 
    $i++; 
} 
echo '</table>'; 

我得到下面的輸出:

-------------------------------------------------------- 
Month:  | 07/2011  | 7-8  | 1432 A.H 
-------------------------------------------------------- 
Location: | Plainfield | NJ  | USA 
-------------------------------------------------------- 
Calculation | ValueX  | Juristic | ValueY 
Method:  |    | Method: | 
-------------------------------------------------------- 

我想將最後一行分成2行,然後將第二行 看起來像下面的結果。

-------------------------------------------------------- 
Month:  | 07/2011  | 7-8  | 1432 A.H 
-------------------------------------------------------- 
Location: | Plainfield | NJ  | USA 
-------------------------------------------------------- 
Calculation |   ValueX  
Method:  |   
-------------------------------------------------------- 
Juristic |   ValueY 
Method:  |    
-------------------------------------------------------- 

有人能幫忙嗎?提前致謝。

+0

如果你的數組總是以這種方式看起來,那麼只需對錶格進行硬編碼就好多了。但是如果你的數據結構不是恆定的,那麼你怎麼知道你需要結束這一行呢?你有什麼細節?我的意思是,特定值必須從下一行開始的指標是什麼? –

+0

你好。什麼是動態(改變)在這裏?顯然,數據可能會改變,但是行數或列數也會改變嗎?這影響了答案。因爲如果數據總是這樣的話,你可以直接編寫它。 – element119

+0

你的數組結構有點混亂。您通常不會將元數據(列標題等)放在需要數據的地方。你爲什麼不首先安排數組,以便將元數據表示爲鍵而不是?其次,是否有必要使用循環創建表格?如果你已經知道它不會改變,我建議你用表格模板來解決這個問題。 –

回答

3

如果下面的東西都是真實的:

  1. 行數將始終是相同的
  2. 列數將始終是相同的

然後你」可能更好,只是將部分陣列插入表中,如下所示:

<table> 
<tr> 
    <td><?= $array[0]?></td> 
    <td><?= $array[1]?></td> 
    <td><?= $array[2]?></td> 
    <td><?= $array[3]?></td> 
</tr> 
<tr> 
    <td><?= $array[9]?></td> 
    <td colspan='3'><?= $array[10]?></td> 
</tr> 
<tr> 
    <td><?= $array[12]?></td> 
    <td colspan='3'><?= $array[13]?></td> 
</tr> 
</table> 
1

我認爲如果你只是將HTML和PHP混合在一起,而不是像你正在做的循環那樣做,它會更容易。

echo "<table> 
<tr> 
    <td>{$arr[0]}</td> 
    <td>{$arr[1]}</td> 
    <td>{$arr[2]}</td> 
    <td>{$arr[3]}</td> 
</tr> 
<tr> 
    <td>{$arr[9]}</td> 
    <td colspan='3'>{$arr[10]}</td> 
</tr> 
<tr> 
    <td>{$arr[12]}</td> 
    <td colspan='3'>{$arr[13]}</td> 
</tr> 
</table>"; 
+0

如果您要使用括號('{'和'}')語法,那麼您需要證明它將在PHP中使用引號括起來的echo語句中。否則,該代碼是無效的HTML。 – element119

+0

好主意。編輯答案。 – Mike

3
<table> 
<?php 
foreach($row in $rows2) { 
    echo '<tr>'; 
    echo '<td>' . $row[0] . '</td>'; 
    echo '<td>' . $row[1] . '</td>'; 
    echo '<td>' . $row[2] . '</td>'; 
    echo '<td>' . $row[4] . '</td>'; 
    echo '</tr><tr>'; 
    echo '<td>' . $row[5] . '</td>'; 
    echo '<td>' . $row[6] . '</td>'; 
    echo '<td>' . $row[7] . '</td>'; 
    echo '<td>' . $row[8] . '</td>'; 
    echo '</tr><tr>'; 
    echo '<td>' . $row[9] . '</td>'; 
    echo '<td colspan="3">' . $row[10] . '</td>'; 
    echo '</tr><tr>'; 
    echo '<td>' . $row[12] . '</td>'; 
    echo '<td colspan="3">' . $row[13] . '</td>'; 
    echo '</tr>'; 
} // end foreach 
?> 
</table>