модуль php в цикле

Я сейчас проверяю, является ли запись в цикле третьей итерацией или нет, со следующим кодом:

<?php for ($i = 0; $i < count($category_news); $i++) : ?> <div class="grid_8"> <div class="candidate snippet <?php if ($i % 3 == 2) echo "end"; ?>"> <div class="image shadow_50"> <img src="<?php echo base_url();?>media/uploads/news/<?php echo $category_news[$i]['url']; ?>" alt="Image Preview" width="70px" height="70px"/> </div> <h5><?php echo $category_news[$i]['title']?></h5> <p><?php echo strip_tags(word_limiter($category_news[$i]['article'], 15)); ?></p> <?php echo anchor('/news/article/id/'.$category_news[$i]['news_id'], '&gt;&gt;', array('class' => 'forward')); ?> </div> </div> <?php if ($i % 3 == 2) : ?> </li><li class="row"> <?php endif; ?> <?php endfor; ?> 

Как я могу проверить, является ли цикл вторым, а не его третьей итерацией?

Я пробовал $i % 2 == 1 безрезультатно.

Solutions Collecting From Web of "модуль php в цикле"

Модуль проверяет, что осталось от деления.

Если $ i равно 10, 10/2 = 5 без остатка, то модуль $ i равен 0.
Если $ i равно 10, 10/3 = 3 с остатком 1, то модуль $ i равен 1.

Чтобы вам было легче отслеживать количество элементов, я начинал бы $ i с 1 вместо 0. eg

 for($i=1; $i <= $count; $i++) if($i % 2 == 0) echo 'This number is even as it is divisible by 2 with no leftovers! Horray!'; 

Надеюсь, это понятно. Шай.

Теперь для ответа:

Как я могу проверить, что цикл – это 2-й вопрос, а не третий, я пробовал,

 $i % 2 === 0 

Если есть сомнения, напишите фрагмент кода :

 for ($j = 1; $j < 4; $j++) { for ($k = 0; $k < $j; $k++) { echo "\n\$i % $j == $k: \n"; for ($i = 0; $i < 10; $i++) { echo "$i : "; if ($i % $j == $k) { echo "TRUE"; } echo " \n"; } } } 

Вот результат. Используйте его, чтобы выяснить, что вам нужно использовать:

 $i % 1 == 0: 0 : TRUE 1 : TRUE 2 : TRUE 3 : TRUE 4 : TRUE 5 : TRUE 6 : TRUE 7 : TRUE 8 : TRUE 9 : TRUE $i % 2 == 0: 0 : TRUE 1 : 2 : TRUE 3 : 4 : TRUE 5 : 6 : TRUE 7 : 8 : TRUE 9 : $i % 2 == 1: 0 : 1 : TRUE 2 : 3 : TRUE 4 : 5 : TRUE 6 : 7 : TRUE 8 : 9 : TRUE $i % 3 == 0: 0 : TRUE 1 : 2 : 3 : TRUE 4 : 5 : 6 : TRUE 7 : 8 : 9 : TRUE $i % 3 == 1: 0 : 1 : TRUE 2 : 3 : 4 : TRUE 5 : 6 : 7 : TRUE 8 : 9 : $i % 3 == 2: 0 : 1 : 2 : TRUE 3 : 4 : 5 : TRUE 6 : 7 : 8 : TRUE 9 : 

для каждой третьей итерации вам нужно

 if ($i % 3 === 0) 

если определенная третья итерация тогда

 if ($i === 3) 

Я думаю, это должно быть:

 if ($i % 2 == 0) 

Попробуйте это, нужно работать на каждую третью итерацию:

 if ($i % 3 === 0)