2011-11-15 9 views
10

Jestem obecnie sprawdzenie, czy wpis w pętli jest 3rd iteracji lub nie, z następującym kodem:php moduł w pętli

<?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; ?> 

Jak mogę sprawdzić, czy pętla jest na 2 i jego nie trzecia iteracja?

Próbowałem $i % 2 == 1 bezskutecznie.

Odpowiedz

12

Modulus sprawdza whats resztki dywizji.

Jeśli $ i wynosi 10, 10/2 = 5 bez resztki, tak, że moduł sprężystości przy 2 $ będzie 0.
Jeśli $ i wynosi 10, 10/3 = 3 z pozostałością 1, tak $ ja moduł 3 byłby 1.

Aby ułatwić śledzenie liczby pozycji, zacznę od $ i od 1 zamiast 0. Np.

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!'; 

Mam nadzieję, że to zrozumiałe. Shai.

0

myślę, że powinno być:

if ($i % 2 == 0) 
0

Spróbuj, powinno działać dla każdej iteracji 3:

if ($i % 3 === 0) 
1

dla co trzeciej iteracji trzeba

if ($i % 3 === 0) 

jeśli szczególności trzecia iteracja następnie

if ($i === 3) 
8

teraz na odpowiedź:

Jak mogę sprawdzić pętla jest na to 2-cia interakcja nie jest 3. Próbowałem,

$i % 2 === 0 
7

w razie wątpliwości, napisz snippet of code:

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"; 
     } 
    } 
} 

Oto wynik. Użyj go, aby dowiedzieć się, co musisz użyć:

$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 : 
+1

To naprawdę użyteczny fragment! Przewodnik Idiots - zwiększenie "4" w pierwszej linii spowoduje wypuszczenie większej ilości pętli z większymi odstępami przed powtórzeniem. – phil

Powiązane problemy