2013-07-14 113 views
0

我有這樣的代碼:PHP while循環結束越早

$nr=10; 
     $teste=$this->vector_teste(); 
     $rezultat=array(); 
     $k=1; 
     do{ 
     $rand_t=rand(0, count($teste)-1); 
     $rand=rand(1,2); 
     if($nr<$rand)$rand=1; 
     $nr=$nr-$rand; 
     $chest=new chestionar(get_cod_by_id($teste[$rand_t])); 
     $cnt_q=$chest->numar_intrebari(); 
     for($i=1;$i<=$rand;$i++){ 
      $rand_q=rand(1, $cnt_q); 
      $rezultat[$teste[$rand_t]][$i]=$rand_q; 
     } 

     $k++; 
     }while($nr>0); 

,並在碼的末尾陣列$ rezultat必須有10個項目,但有時它有9或8 ..和如果我幸運的是它有10個項目。爲什麼?我怎樣才能解決這個問題?

回答

0

在最壞的情況下,您甚至可以獲得最多5個項目。

$rand=rand(1,2); 
if($nr<$rand)$rand=1; 
$nr=$nr-$rand; 

這段代碼遞減$nr隨機由1或2更改爲$nr--總是有10次迭代。