首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有没有办法显示for each循环的前半部分,然后再显示另一半?

有没有办法显示for each循环的前半部分,然后再显示另一半?
EN

Stack Overflow用户
提问于 2013-02-22 00:57:13
回答 2查看 248关注 0票数 0

现在如何在for each循环中显示一半的行,然后再显示其余的行?for each循环将打印6行,所以我现在想打印前3行,以后打印4-6行。

我试着使用while循环,但它不起作用,试着把它放在同一行的3个副本中。

代码语言:javascript
复制
$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++;
    } }
    ?>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-02-22 01:01:59

这个怎么样?

代码语言:javascript
复制
$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);
票数 0
EN

Stack Overflow用户

发布于 2013-02-22 01:00:15

查看array_slice() (http://php.net/manual/en/function.array-slice.php)作为一个选项。您可以将$items的前三个元素提取到它们自己的数组中,单独处理它们,然后在其他某个点提取最后三个元素并处理它们。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15007966

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档