现在如何在每个循环中显示一半的行,其余的稍后? for each循环将打印6行,所以我想现在打印前3个,然后打印4-6个。
我尝试使用while循环,但它不起作用,尝试将其置于内部并且3个重复同一行。
$i = 1;
while($i <= 3) {
foreach ($items as $res) {
$image = $res['image_name'];
$id = $res['id'];
//echo '<img src="/e-com/images/'.$image.'" />'; ?>
<tr>
<td><?php echo $res['id']; ?></td>
<td><?php echo $res['item_name']; ?> </td>
<td><?php echo "£ ".$res['price']; ?> </td>
<td><?php echo $res['category']; ?> </td>
<td><?php echo $res['date_added']; ?> </td>
<td><?php echo "<a href='http://localhost/e-com/index.php/product/to_edit/$id' >Edit</a>"; ?></td>
<td><?php echo "<a href='' onclick='dltCnfrm(\"$id\"); return false'>Delete</a>"; ?></td>
</tr>
<?php $i++;
} }
?>
答案 0 :(得分:0)
选中array_slice()
(http://php.net/manual/en/function.array-slice.php)作为选项。你可以将$items
的前三个元素拉出到它们自己的数组中,单独处理它们,然后在其他一些点拉出最后三个元素并处理它们。
答案 1 :(得分:0)
这个怎么样?
$first = array();
$second = array();
foreach ($items as $i => $res) {
$image = $res['image_name'];
$id = $res['id'];
$html = "
<tr>
<td>".$res['id']."</td>
<td>".$res['item_name']."</td>
<td>£ ".$res['price']."</td>
<td>".$res['category']."</td>
<td>".$res['date_added']."</td>
<td><a href='http://localhost/e-com/index.php/product/to_edit/".$id."' >Edit</a></td>
<td><a href='' onclick='dltCnfrm(".$id."); return false'>Delete</a></td>
</tr>";
if($i < 3) {
$first[] = $html;
} else {
$second[] = $html;
}
}
echo implode("", $first);
///few lines below
echo implode("", $second);