2011-07-24 15 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行に分割して、次に のように2番目の列をcolspanしようとしています。

-------------------------------------------------------- 
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> 
関連する問題