我需要很少的PHP帮助,这是一个生成产品列表的代码:
<table class="list">
<?php for ($i = 0; $i < sizeof($products); $i = $i + 1) { ?>
<tr>
<?php for ($j = $i; $j < ($i + 1); $j++) { ?>
<td width="100%"><?php if (isset($products[$j])) { ?>
<a class="prod_snimka" href="<?php echo $products[$j]['href']; ?>"><img width="200" src="<?php echo $products[$j]['thumb']; ?>" title="<?php echo $products[$j]['name']; ?>" alt="<?php echo $products[$j]['name']; ?>" /></a>
<?php } ?></td>
<?php } ?>
</tr>
<?php } ?>
</table>
在4个TD(产品)制作另一个TR之后,我需要修改以产生一个TR和TD的输出。在一行中我想要4个TD,在这种情况下,如果只有3个产品,那么最后一个将是一个空的TD。嗯..有可能吗?
由于
答案 0 :(得分:2)
看起来你不需要内循环。它只会执行一次。
试试这个:
<?php
$columns = 4;
$i = 0;
?>
<table class="list">
<?php foreach ($products as $product) {
if (!($i % $columns)) {
echo '<tr>';
} ?>
<td width="25%">
<a class="prod_snimka" href="<?php echo $product['href']; ?>"><img width="200" src="<?php echo $product['thumb']; ?>" title="<?php echo $product['name']; ?>" alt="<?php echo $product['name']; ?>" /></a>
</td>
<?php
$i++;
if (!($i % $columns)) {
echo '</tr>';
}
?>
<?php } ?>
<?php
if (!($i % $columns)) {
while (!($i % $columns)) {
echo '<td width="25%"></td>';
$i++;
}
echo '</tr>';
}
?>
</table>
答案 1 :(得分:1)
<table class="list">
<?php $i = 0;
$cols = 4;
for each $products as $product {
if (!($i % $cols)) {
echo "<tr width='25%'>";
}
echo '<td><a class="prod_snimka" href="'.$product['href'].'"><img width="200" src="'.$product['thumb'].'" title="'.$product['name'].'" alt="'.$product['name'].'" /></a></td>';
if !($i % $cols) {
echo "</tr>";
}
$i++;
}
if ($i-1 % $cols) {
echo "</tr>";
}
</table>