2 回答
TA贡献1836条经验 获得超13个赞
问题是你总是先放出单元格文本,即使是rows,当你得到一个新行时,你总是打开下一行......
echo '</tr><tr>';
至少你关闭它,但很难(不维护各种标志)决定何时输出开始标签。
另类,这构建了每一行,然后使用implode()了该$rows阵列添加<tr></tr>标签一轮他们...
echo '<table><thead>';
$rows = [];
$row = '';
foreach ( $cars as $car ) {
if ( $car['table_body_element'] == 'row' ) {
if ( !empty($row) ) {
$rows [] = $row;
$row = '';
}
}
else {
$row .= '<td>'.$car[ 'cell_text' ].'</td>';
}
}
echo '<tr>'.implode( '</tr><tr>', $rows ).'</tr>';
echo '</tbody></table>';
TA贡献1783条经验 获得超4个赞
最好将 foreach 放在表格中,在我看来,在 foreach 的末尾放置并不好。尝试这个:
echo '<table><tbody>';
foreach ($cars as $item){
echo '<tr><td>'.$item[ 'cell_text' ].'</td>';
if( $item[ 'table_body_element' ] == 'row' ){
echo '</tr>';
}
}
echo '</tbody></table>';
- 2 回答
- 0 关注
- 219 浏览
添加回答
举报