PHP:将每个循环添加一个新的div

时间:2018-09-01 15:07:49

标签: php loops foreach count

我想做的是为每个循环添加一个新的div。

<?php
 $f_count = 0; //Is this right?
 foreach ($this->items as $item) {
  <div>
   //stuff
  </div>
  if ($f_count++ == 1) { //Is this right?
   //mystuff1 here 
  }
  if ($f_count++ == 2) { //Is this right?
   //mystuff2 here 
  }
 }
?>

因此,每个循环都需要有一个自己的菜单项,该菜单项是在“ mystuff”中创建的。 问候!

3 个答案:

答案 0 :(得分:0)

我建议您在foreach循环中跟踪变量。

我发现,如果出现问题,您将了解正在进行的迭代,因此它更易于阅读和调试。

<?php

$counter = 0;

foreach(range(1,10) as $i) {
    $counter++;

    if($counter === 1) {
        // do stuff
    }
}

我尚未运行您的代码,但我认为我遇到了问题

$f_count = 0;看起来不错

if($f_count++ == 1)将比较f_count的原始值,然后将其递增,因此在比较后它将变为1。

下一个相同,因此它们可能都等同于true,或者也许其中的任何一个都不起作用...谁知道...只需跟踪并增加

答案 1 :(得分:0)

好像您想要这样的东西,重要的部分是:

  • 使用$ key => $ item,$ key将为0、1、2、3、4,因此基本上是一个计数器供您使用!
  • 您可以使用if ($key %2 === 1)检查是1,3,5,还是if ($key %2 === 0)检查0,2,4,6
  • 您需要在HTML元素之前关闭PHP标记

===============

<?php
 //$f_count = 0; //No need this

 $items = ["first", "second", "third"];//I used $items, you can keep using $this->items
 foreach ($items as $key => $item) {
  ?>
  <div>
   //stuff
  </div>
<?php
  if ($key %2 === 1) { //1,3,5,7......
?>
<div>
 //mystuff1 here 
</div>
<?php   
  } else { //2,4,6,8
?>  
<div>
   //mystuff2 here 
</div>
<?php  
  }
 }
?>

答案 2 :(得分:0)

谢谢,伙计们,但是问题是在循环中创建一个菜单项,除非您不使用javascript,否则这不是一个聪明的主意,但是在这种情况下,我使用的是javascript。

所以我在php文件中四处搜寻,发现有帮助。

<?php if (count($this->items) <= 1) {
  //stuff
} ?>
<?php if (count($this->items) <= 2) {
  //stuff
} ?>
<?php if (count($this->items) > 3 //if there are more than 3 items) {
  //stuff
} ?>

我清楚地测试了我,看来它可以正常工作。