連想配列から<th>を含むテーブルを作成する関数
連想配列からテーブル(<th>テーブルヘッダ項目を含む)を作成する関数を作ろうと思っています。
配列と関数をどのように書けばHTMLのソースのようになるでしょうか?
値によって、<td>と<th>を振り分けるようになど良い方法を教えてください。
(1.できれば配列で<td> </td>は省略したいと思います。)
(2.<th> </th>の指定場所は下のhtmlのように縦とか横とかにに変えられた方が良いです。)
//----- 関数 -----
function table($v) {
}
//----- 配列 -----
$s = array();
$s[0] = array( 'A-1' , 'B-1' , 'C-1' , 'D-1' , 'E-1' );
$s[1] = array( 'A-2' , 'B-2' , 'C-2' , 'D-2' , 'E-2' );
$s[2] = array( 'A-3' , 'B-3' , 'C-3' , 'D-3' , 'E-3' );
$s[3] = array( 'A-4' , 'B-4' , 'C-4' , 'D-4' , 'E-4' );
$s[4] = array( 'A-5' , 'B-5' , 'C-5' , 'D-5' , 'E-5' );
table($s);
//----- 生成されるhtml -----
<table>
<tr><th>A-1</th><th>B-1</th><th>C-1</th><th>D-1</th><th>E-1</th></tr>
<tr><td>A-2</td><td>B-2</td><td>C-2</td><td>D-2</td><td>E-2</td></tr>
<tr><td>A-3</td><td>B-3</td><td>C-3</td><td>D-3</td><td>E-3</td></tr>
<tr><td>A-4</td><td>B-4</td><td>C-4</td><td>D-4</td><td>E-4</td></tr>
<tr><td>A-5</td><td>B-5</td><td>C-5</td><td>D-5</td><td>E-5</td></tr>
</table>
<table>
<tr><th>A-1</th><td>B-1</td><td>C-1</td><td>D-1</td><td>E-1</td></tr>
<tr><th>A-2</th><td>B-2</td><td>C-2</td><td>D-2</td><td>E-2</td></tr>
<tr><th>A-3</th><td>B-3</td><td>C-3</td><td>D-3</td><td>E-3</td></tr>
<tr><th>A-4</th><td>B-4</td><td>C-4</td><td>D-4</td><td>E-4</td></tr>
<tr><th>A-5</th><td>B-5</td><td>C-5</td><td>D-5</td><td>E-5</td></tr>
</table>
//----- 考え中??の配列 -----
$s = array();
$s[0] = array( '<th>A-1</th>' , '<th>B-1</th>' , '<th>C-1</th>' , '<th>D-1</th>' , '<th>E-1</th>' );
$s[1] = array( 'A-2' , 'B-2' , 'C-2' , 'D-2' , 'E-2' );
$s[2] = array( 'A-3' , 'B-3' , 'C-3' , 'D-3' , 'E-3' );
$s[3] = array( 'A-4' , 'B-4' , 'C-4' , 'D-4' , 'E-4' );
$s[4] = array( 'A-5' , 'B-5' , 'C-5' , 'D-5' , 'E-5' );
table($s);
$s = array();
$s[0] = array( 'th' => 'A-1' , 'B-1' , 'C-1' , 'D-1' , 'E-1' );
$s[1] = array( 'th' => 'A-2' , 'B-2' , 'C-2' , 'D-2' , 'E-2' );
$s[2] = array( 'th' => 'A-3' , 'B-3' , 'C-3' , 'D-3' , 'E-3' );
$s[3] = array( 'th' => 'A-4' , 'B-4' , 'C-4' , 'D-4' , 'E-4' );
$s[4] = array( 'th' => 'A-5' , 'B-5' , 'C-5' , 'D-5' , 'E-5' );
table($s);
//----- 参考中のソース -----
//-- http://okwave.jp/qa/q8107250.html
function table($v) {
echo '<table>';
foreach ($v as $t1) {
echo '<tr>';
foreach ($t1 as $t2) {
echo '<td>' . $t2 . '</td>';
}
echo '</tr>';
}
echo '</table>';
}
補足
ありがとうございます。 要素をどうしても利用する必要があるので、display:table-cell;では表現が難しく、プログラム側は一切触れない条件の上での方法を考えています。 このような場合は難しいでしょうか。