2017-08-23 85 views
-1

我正在編寫一個php代碼,用於檢查mgt模塊,我需要給出緩刑,撤回,缺陷或良好站立的學生數量,這是我計算了以前的cgpa ,累計cgpa以及學生是否已經完成課程。所有這些都在for循環中,我想從for循環中獲得結果。我怎麼做。我的代碼是冗長低於從for循環中獲取值

我已編輯的代碼是什麼,我想實現可以理解

foreach($aitemn as $item) 

    { 
     if (substr($item,1,2) < 13 || (substr($item,1,2) == 13 && $mode == '2')) 
     { 

      if ($pcgpa < 1.0 && $gpa < 1.0 && $xlevel == 1) 
       { 
       $remark = 'Probation'; 
       $p = $p + 1; 
       } 
      elseif ($pcgpa < 1.0 && $gpa < 1.0 && $xlevel != 1) 
       { 
        $remark = 'Withdraw'; 
        $w = $w + 1; 
       } 

      elseif($gpa > 1.0 && $fc == 'NIL') 
      { 
       $remark = 'In Good Standing'; 
       $gs = $gs + 1; 
      } 
      elseif ($gpa < 1.0 && $pcgpa > 1.0) 
      { 
       $remark = 'Probation'; 
       $p = $p + 1; 
      }  
      elseif ($fc <> 'NIL') 
      { 

       $remark = 'Deficient'; 
       $d = $d + 1; 
      } 

     } 
    elseif (substr($item,1,2) > 12) 
     { 

      if ($pcgpa < 1.5 && $gpa < 1.5 && $xlevel == 1) 
      { 
       $remark = 'Probation'; 
       $p = $p + 1; 
      } 
      elseif ($pcgpa < 1.5 && $gpa < 1.5 && $xlevel != 1) 
       { 
        $remark = 'Withdraw'; 
        $w = $w + 1; 
       } 

     elseif($gpa > 1.5 && $fc == 'NIL') 
      { 
       $remark = 'In Good Standing'; 
       $gs = $gs + 1; 
      } 
      elseif ($gpa < 1.5 && $pcgpa > 1.5) 
      { 
       $remark = 'Probation'; 
       $p = $p + 1; 
      }  
      elseif ($fc <> 'NIL') 
      { 

       $remark = 'Deficient'; 
       $d = $d + 1; 
      } 

     } 

    $num = $num + 1; 

    } 


     <td>Number in Good Standing: <?php echo $gs;?></br> 
     <td>Number on Probation:  <?php echo $p;?></br> 
     <td>Number in Deficient  <?php echo $d;?></br> 
     <td>Number in Withdrawn  <?php echo $w;?></br> 
+0

你的問題不清楚。你能改述一下嗎? –

+0

我有一份學生的名單,我正在計算他們的GPA,CGPA,PCGPA,如果他們有遺漏或沒有。所有這些都在for循環中。我現在需要打印具有優秀課程的學生數量,良好的學生數量等等。我注意到,即使在使用數組之後,變量也無法在for循環之外訪問。 –

+0

我建議你重新編寫你的代碼,這樣有條件符合學生的條件,1.有優秀的課程,2.有良好的信譽等。這樣,它使你的代碼更加模糊和容易理解。 –

回答

0

好吧,我想我明白你的意思。

爲了讓您能夠訪問的變量在foreach循環,這樣做會爲您您的標記在循環中,像這樣的一種方法:

<?php 
foreach($aitemn as $item) { 
    // your other codes 
?> 
<td>Number in Good Standing: <?php echo $gs;?></br> 
<td>Number on Probation:  <?php echo $p;?></br> 
<td>Number in Deficient  <?php echo $d;?></br> 
<td>Number in Withdrawn  <?php echo $w;?></br> 

<?php 
} // close the foreach after the markup 
?> 

希望有所幫助。

+0

感謝塞繆爾,但它真的是我想看到的每個變量的最後一個值,而不是每個變量的所有迭代 –

+0

最後一個值,你是指在變量中加了'+ 1'的位置? –