本文主要介紹了基於PHP實現假裝商品限時搶購繁忙的效果。希望對大家有幫助。
最近要做一個項目,有關商品顯示搶購的功能。例如我們的網站很帶流量,那麼成千上萬的用戶在幾秒內同時點你的商品,確實會出現「搶購人數過多,會提示,系統繁忙。
但是呢,大部分網站然而並沒有這麼牛叉。的很繁忙哦,只不過人家是故意讓你覺得不搶就買不到,求懂)
本文來設定一個規則,大家可以根據我的思路擴展即可。 ## 1、商品購買鏈接,每個人都可以點。用php程式碼實現。個籃球。小夥伴看。了很重要的一點
2、如果第二個人來摸呢?球,7個籃球)
# 上面的程序明顯忽略了:繼續「胡亂的、隨便的」混合一下。 %。你的老闆不會同意你花這麼多時間來完成這個功能吧。函數,盡可能的讓摸到籃球的幾率接近於70%。 blue”,”blue”,”blue”,”blue”,”blue”,”blue”,”blue”); 這個東西要有,這就是初始化的三個紅球,7個籃球
# 第二步:隨意的、亂的混合。
上面一個陣列有10個元素,我們可以取一個隨機兩個球交換,交換多少次可以自己設定
先寫個交換函數(如果這個函數看不懂,就要惡補基礎知識啦)$arr=array(“red”,”red”,”red”,”blue”,”blue”,”blue”,”blue”,”blue”,”blue”,”blue”); echo $arr[rand(0,9)];
這個函數實現,我輸入兩個隨便什麼序號,實現這個陣列中符合該序號的求交換一下。
第三步:最佳化交換演算法。 因為上面的交換函數,輸入的隨機參數導致,紅球和紅球交換,或籃球和籃球交換。那麼然而並沒有實現「真正的」混合
function swap($i,$j,$arr) { $tmp=$arr[$i]; $arr[$i]=$arr[$j]; $arr[$j]=$tmp; return $arr; }
諾看這裡:
function getRange($arr,$v) { $ret=array(); for($i=0;$i<count($arr);$i++) { if($arr[$i]==$v) { $ret[]=$i; } } return $ret[rand(0,count($ret)-1)]; }
$i=getRange($arr,”red”); //这样可以取出随机一个红球的序号
$j=getRange($arr,”blue”); //这样可以取出随机一个篮球的序号
for($num=0;$num<10;$num++) { $i=getRange($arr,”red”); $j=getRange($arr,”blue”); $arr=swap($i,$j,$arr); // echo implode(“,”, $arr).”|”.$i.”|”.$j.”<br/>”; //这个语句可以看一下输出,混合过后的排列,是否每次都不一样 }
如果是red,那就讓程式繼續執行購買程序。
#
以上是PHP隨機回傳繁忙效果的詳細內容。更多資訊請關注PHP中文網其他相關文章!