在while循环中,它创建了一个标题和图像链接的列表,我想像下面的图像一样并排显示它.每个标题shold来自新列和图像应该在每个类别下.并且只有3行.

这是我的代码:
<table>
<tr>
<th>Heading 1</th>
<th>Heading 2</th>
<th>Heading 3</th>
</tr>
<?php
//example array $images = array('Image 1', 'Image 2', 'Image 3', 'Image 4', 'Image 5', );
for ($i=0; $i<count($images); $i++) { ?>
<tr>
<td>
<?php echo $images[$i]; ?></td>
<td><?php echo $i<3?$images[$i]:''; ?></td>
<td><?php echo $i<1?$images[$i]:''; ?></td>
</tr> <?php } ?>
</table>
Run Code Online (Sandbox Code Playgroud)
我不确定我是否理解你需要什么,但是这个怎么样:
$headings = ['heading 1', 'heading 2', 'heading 3'];
$images = [
'heading 1' => ['image 1', 'image 2', 'image 3', 'image 4', 'image 5'],
'heading 2' => ['image 1', 'image 2', 'image 3'],
'heading 3' => ['image 1']
];
$rows = [];
foreach($headings as $heading){
$rowId = 0;
$rows[$rowId][] = '<th>'.$heading.'</th>';
if(isset($images[$heading])){
foreach($images[$heading] as $image){
$rowId += 1;
if($rowId == 3){
$rowId = 0;
}
$rows[$rowId][] = '<td>'.$image.'</td>';
}
}
for($i = $rowId + 1; $i < 3; $i++){
$rows[$i][] = '<td> </td>';
}
}
echo '<table>';
foreach($rows as $row){
echo '<tr>';
foreach($row as $column){
echo $column;
}
echo '</tr>';
}
echo '</table>';
Run Code Online (Sandbox Code Playgroud)