我如何打破 foreach 语句,回显其他内容然后继续
Posted
技术标签:
【中文标题】我如何打破 foreach 语句,回显其他内容然后继续【英文标题】:How can i break a foreach statement, echo something else and then continue 【发布时间】:2012-09-02 10:33:20 【问题描述】:我从 MSQL 数据库中获取了两个不同的数组数据数组,第一个数组来自我的博客文章表,包含 15 行/项目,第二个数组来自广告表,包含 3 行/项目。我想从博客文章表(第一个数组)中获取前 5 组数据,然后从广告表(第二个数组)中获取 1(一个)并从我在第一个数组中停止的位置继续,另外 5 个项目和一个来自第一个数组,就这样。 请帮我想出如何做到这一点的php代码。 谢谢。
【问题讨论】:
您可以先告诉我们您使用的编程语言 请我需要 PHP 代码来做到这一点 What have you tried? foreach blog_array where i%5 == 0 etc. etc. 你的 tut 书在哪里? 【参考方案1】:代码假定数组从0
开始索引。
$i = 0;
foreach ($posts as $post)
// Output and/or otherwise process $post
if (++$i % 5 == 0)
$advertisements[$i / 5 - 1] // Output and/or process advertisement
【讨论】:
感谢您的帮助,但我尝试了上面的脚本,它按预期从帖子数组输出 5,现在的问题是它没有回显广告数组的数组值,当我使用 foreach对于广告数组,它会在继续发布数组之前打印所有广告内容,请问我该如何解决这个问题??【参考方案2】:使用模数。
您将使用mssql_num_rows
进行计数,然后迭代一个计数器,例如$i
然后在 foreach($rows)..:
$i = 0; $count = mssql_num_rows($result);
foreach($rows as $blog)
if($i > 0 && $i++ % 5 == 0)
$advert = array_shift($adverts_array);
// process $advert
// process $blog here
【讨论】:
如果您还希望以添加开头,请删除$i > 0
子句
感谢您的帮助,但我尝试了上面的脚本,它按预期从帖子数组中输出 5,现在的问题是它没有回显广告数组的数组值,当我使用 foreach 时对于广告数组,它会在继续发布数组之前打印所有广告内容,请问我该如何解决这个问题??
无法从您提供的信息中说出原因......但是您有两个结果集需要迭代,对吗?然后简单地处理第一个广告@count 5,第二个广告@count 10 等等。这就是为什么评论说“拿一个(!)”以上是关于我如何打破 foreach 语句,回显其他内容然后继续的主要内容,如果未能解决你的问题,请参考以下文章