[請益] php使用迴圈的效率
今天有碰到一個問題,不知道有沒有人可以幫我解惑?
有一個抽獎活動,共有九個獎項個別有設定好抽獎的機率,
我是取一到一千的亂數,依照取得的亂數決定獎項,程式碼如下:
//九個獎項從第一獎到第九獎機率為2%,10%,15%,0.3%,0.7%,2%,10%,20%,40%
$prizeRange=array{0,20,100,150,3,7,20,100,200,400};
$randNo=mt_rand(1,1000);//從一到一千隨機取出一數字
$prizeNo=0;//從下方程式判斷得第幾獎
//方法一(慢)
while($randNo>0){$randNo-=$prizeRang[$prizeNo+1];$prizeNo++;}
//方法二(快)
for($i=1;$i<count($prizeRange);$i++}
{
$randNo=$randNo-$prizeRange[$i];
if ($randNo<=0) {$prizeNo=$i;break;}
}
//
本來是用第一種方法,但是實際放上server執行時發現執行速度超慢,還會出現超過
超過30秒沒回應的error,
後來改成第二種方法讓迴圈有實際的次數去跑,結果速度差很多,就算再寫個for迴圈
跑個2000次也是一開網頁就有執行結果,不知道到底為何結果差這麼多,照理說迴圈
執行的次數應該差不多啊,不知道有沒有人可以幫我解答,Tks!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.120.7.108
推
06/26 00:32, , 1F
06/26 00:32, 1F
推
06/26 01:04, , 2F
06/26 01:04, 2F
→
06/26 01:17, , 3F
06/26 01:17, 3F
→
06/26 01:17, , 4F
06/26 01:17, 4F
→
06/26 01:18, , 5F
06/26 01:18, 5F
→
06/26 01:18, , 6F
06/26 01:18, 6F
→
06/26 02:13, , 7F
06/26 02:13, 7F
討論串 (同標題文章)
PHP 近期熱門文章
PTT數位生活區 即時熱門文章