在PHP中暂停并恢复foreach循环

时间:2012-10-27 20:02:57

标签: foreach

可以暂停一个foreach循环,一些代码,然后恢复它?

让我解释一下:我有一个包含9个元素和一些数据的数组。我想循环数组将元素分组三,我想这样做而不创建三个不同的foreach。

像这样:

<div class="first">
<ul>
[start foreach]
<li>Element 1</li>
<p>Element 1 data</li>
<li>Element 2</li>
<p>Element 2 data</li>
<li>Element 3</li>
<p>Element 3 data</li>
[pause foreach]
</ul>
</div>


<div class="second">
<ul>
[start foreach]
<li>Element 4</li>
<p>Element 4 data</li>
<li>Element 5</li>
<p>Element 5 data</li>
<li>Element 6</li>
<p>Element 6 data</li>
[pause foreach]
</ul>
</div>


<div class="third">
<ul>
[start foreach]
<li>Element 7</li>
<p>Element 7 data</p>
<li>Element 8</li>
<p>Element 8 data</p>
<li>Element 9</li>
<p>Element 9 data</p>
[pause foreach]
</ul>
</div>

1 个答案:

答案 0 :(得分:0)

使用围绕html的php循环语句是可能的,它有点埋没在php.net手册中,这里是确切的页面,第一个例子应该是你需要的。

http://www.php.net/manual/en/control-structures.alternative-syntax.php

这是我正在处理的页面的示例,它是导航栏的一部分。

<ul class="menu_dropdown">
    <?php $categories = Category::find_all();
    foreach ($categories as $category) : ?>
        <li class="submenu"><a href="products.php?category=<?php echo $category->id?>"><?php echo $category->name."?></a></li>
    <?php endforeach?>
</ul>

如果要将其格式化为三个不同的div(列?),可能更容易获取查询数组并使用while或if语句来查看不同的键或值,因为foreach将要执行的操作它们都是一次性的,除非你有3个单独的查询。