TBを作成 ※4列で改行して余りはハイフン
パターン1.1
<?php $data = ['フシギダネ','フシギソウ','フシギバナ','ヒトカゲ','リザード','リザードン','ゼニガメ','カメール','カメックス']; ?>
<table>
<tr>
<th colspan ="<?php echo $col = 4;?>">ポケモン</th>
<tr><?php
$int = 0;
$wari = count($data) % $col;
foreach($data as $list){
if($int % $col === 0 && $int > 0) echo '</tr><tr>';
echo '<td>',$list ?: '調査中','</td>';
$int++;
}
echo $wari !== 0 ? str_repeat('<td>-</td>',$col - $wari):'';?>
</tr>
</table>
パターン1.2 ※残りはテーブル結合
※下記の場合は出力するTD数が決まっている前提なので、ハイフンは表示しない
<?php
$data = ['フシギダネ','フシギソウ','フシギバナ','ヒトカゲ','リザード']; ?>
<table>
<tr>
<th colspan ="<?php echo $col = 6;?>">ポケモン</th>
<tr><?php
$td_col = 2;
$cnt = count($data);
$wari = count($data) % 3;
foreach($data as $td => $list){
if($td % 3 === 0 && $td > 0) echo '</tr><tr>';
if($wari === 2 && $cnt === 2){
$td_col = 3;
}
echo '<td colspan=',$td_col,'>',$list,'</td>';
$cnt--;
}?>
</tr>
</table>
<?php
$data = ['フシギダネ','フシギソウ','フシギバナ','ヒトカゲ','リザード']; ?>
<table>
<tr>
<th colspan ="<?php echo $col = 2;?>">ポケモン</th>
<tr><?php
$td_col = 1;
$cnt = count($data);
$wari = count($data) % 2;
foreach($data as $td => $list){
if($td % 2 === 0 && $td > 0) echo '</tr><tr>';
if($wari === 1 && $cnt === 1){
$td_col = 2;
}
echo '<td colspan=',$td_col,'>',$list,'</td>';
$cnt--;
}?>
</tr>
</table>
パターン2
<?php $data = ['フシギダネ','フシギソウ','フシギバナ','ヒトカゲ','リザード','リザードン','ゼニガメ','カメール']; ?>
<table>
<tr>
<th rowspan ="<?php echo ceil(count($data)/$col = 4);?>">ポケモン</th><?php
$int = 0;
$wari = count($data) % $col;
foreach($data as $list){
if($int % $col === 0 && $int > 0)echo '</tr><tr>';
echo '<td>',$list['name'] ?: '調査中','</td>';
$int++;
}
echo $wari !== 0 ? str_repeat('<td>-</td>',$col - ($wari % $col)):'';?>
</tr>
</table>