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 關注
- 251 瀏覽
添加回答
舉報