2011-11-15 7 views
10

मैं वर्तमान में जाँच कर रहा हूँ एक पाश में एक प्रविष्टि 3 यात्रा है या नहीं,, निम्न कोड के साथ: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; ?> 

मैं कैसे जांच कर सकते हैं पाश अपने 2 और पर है इसका तीसरा पुनरावृत्ति नहीं है?

मैंने $i % 2 == 1 का कोई फायदा नहीं लिया है।

उत्तर

12

मापांक चेकों क्या एक प्रभाग के बचे हुए।

हैं $ मैं 10 है, 10/2 = 5 कोई बचे हुए के साथ है, तो $ i मापांक 2 1 के एक बचे हुए के साथ 0.
हैं $ i है 10, 10/3 = 3 होगा, इसलिए $ i मॉड्यूलस 3 होगा 1.

आइटम की संख्या को ट्रैक करने के लिए यह आसान बनाने के लिए मैं 0 की बजाय 1 से $ 1 शुरू करूंगा।

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

आशा है कि यह समझ में आता है। शाई।

0

मुझे लगता है कि यह होना चाहिए:

if ($i % 2 == 0) 
0

इस प्रयास करें, हर 3 यात्रा के लिए काम करना चाहिए:

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

हर तीसरे यात्रा के लिए आप की जरूरत

if ($i % 3 === 0) 

अगर विशेष तीसरे यात्रा तो

if ($i === 3) 
8

अब उत्तर के लिए:

मैं कैसे जांच कर सकते हैं पर यह 2 है पाश है इंटरैक्शन यह तीसरा नहीं है मैंने कोशिश की है,

$i % 2 === 0 
7

संदेह होने पर, एक 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"; 
     } 
    } 
} 

यहाँ उत्पादन होता है। इसका उपयोग करने के लिए आपको इसका उपयोग करने के लिए इसका उपयोग करें:

$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

यह वास्तव में उपयोगी स्निपेट है! बेवकूफ गाइड - पहली पंक्ति में '4' को बढ़ाने से दोहराने से पहले बड़े अंतराल के साथ अधिक लूप आउटपुट होंगे। – phil