用php构建表体
我想创建一个在必要时生成表的类。我想调用如下方法:用php构建表体,php,Php,我想创建一个在必要时生成表的类。我想调用如下方法: $html = new HTML; $html->createTbody( Array( 'tr' => Array( 'td' => Array( '1','2','3','4' ) ), 'tr' => Array( 'td' => Array( '5','6','7','8' ) ) ) ); 在这里,我有以下方法:
$html = new HTML;
$html->createTbody(
Array(
'tr' => Array(
'td' => Array(
'1','2','3','4'
)
),
'tr' => Array(
'td' => Array(
'5','6','7','8'
)
)
)
);
在这里,我有以下方法:
<?php
Class HTML{
[..]
public function createTbody($params = Array()){
$output = "\n\t".'<tbody>';
foreach($params['tr'] AS $tr){
$output .= '<tr>';
foreach($params['tr']['td'] AS $td){
$output .= "\n\t\t".'<td>'.$td.'</td>';
}
$output .= '</tr>';
}
$output .= "\n\t".'</tbody>'."\n";
echo($output);
}
?>
然后在中对($i=0;$i类似的内容使用相同的方法
array(
'tr' => array(
array(1, 2, 3, 4), // first row
array('foo', 'bar', 5, 6), //second row
// ...
),
);
如果需要将td
与th
分开,可以使用以下方法:
array(
'tr' => array(
array('th' => array(1, 2, 3, 4), 'td' => array(5)), // first row
array('td' => array('foo', 'bar', 5, 6, 7)), //second row
// ...
),
);
您的问题是,您一遍又一遍地定义同一个键,从而覆盖它们。
我建议您不要使用任何键。只需确保阵列的第一级始终为tr,第二级始终为td
另外,在打印输出时,内部foreach错误;应该使用第一个foreach中的tr变量,并获取其tds,而不是获取foreach tr上的所有tr/td
此外,你有一层太多的数组,你称之为TR的总是只包含一项
这应该更适合:
$html = new HTML;
$html->createTbody(
Array( // entire table
Array( // tr
'1','2','3','4' // td's
),
Array( // tr
'5','6','7','8' // td's
)
)
);
这可能是您的输出代码:
<?php
Class HTML{
[..]
public function createTbody($params = Array()){
$output = "\n\t".'<tbody>';
foreach($params AS $tr){
$output .= '<tr>';
foreach($tr AS $td){
$output .= "\n\t\t".'<td>'.$td.'</td>';
}
$output .= '</tr>';
}
$output .= "\n\t".'</tbody>'."\n";
echo($output);
}
?>
<?php
Class HTML{
[..]
public function createTbody($params = Array()){
$output = "\n\t".'<tbody>';
foreach($params AS $tr){
$output .= '<tr>';
foreach($tr AS $td){
$output .= "\n\t\t".'<td>'.$td.'</td>';
}
$output .= '</tr>';
}
$output .= "\n\t".'</tbody>'."\n";
echo($output);
}
?>