PHP: добавьте каждый цикл новый div - PullRequest
0 голосов
/ 01 сентября 2018

То, что я пытаюсь сделать, это добавить для каждого цикла новый 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». Привет! * * 1004

Ответы [ 3 ]

0 голосов
/ 01 сентября 2018

Похоже, вы хотите что-то подобное, важная часть:

  • Используйте $ key => $ item, ключ $ будет 0,1,2,3,4, так что в основном вам нужен счетчик!
  • Вы можете проверить, равен ли 1,3,5 с помощью if ($key %2 === 1), и 0,2,4,6 с помощью if ($key %2 === 0)
  • Вам нужно закрыть тег PHP перед тем, как ваши элементы HTML

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

<?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  
  }
 }
?>
0 голосов
/ 01 сентября 2018

Спасибо, ребята, но проблема заключалась в создании внутри цикла пункта меню, который не был разумной идеей, если вы не используете 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
} ?>

Я четко проверил i, и кажется, что он работает.

0 голосов
/ 01 сентября 2018

Я бы посоветовал вам отслеживать переменную внутри цикла 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.

То же самое относится и к следующему, так что все они могут приравняться к истине, или, может быть, ни один из них не сработает ... кто знает ... Просто следите за этим и увеличивайте

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...