用array_rand()函數吧,它可以從一個數組中隨機取一個或者多個下標出來,有了下標,就可以從原數組拿到對應的元素了。它的用法也很簡單:array_rand($arr[,
成都創新互聯公司是一家企業級云計算解決方案提供商,超15年IDC數據中心運營經驗。主營GPU顯卡服務器,站群服務器,成都聯通服務器托管,海外高防服務器,大帶寬服務器,動態撥號VPS,海外云手機,海外云服務器,海外服務器租用托管等。
$num])$arr
==
用來取元素的數組$num
==
隨機取下標的個數其中第二個參數
$num
是可選的,默認為1
。注意:它的返回值在第二個參數大于
1
的時候是一個數組;當第二個參數不設或者傳值
1
的時候是一個下標。簡單的示例代碼如下:1、第二個參數不傳值的情況;$arr
=
Array('a',
'b');$rndKey
=
array_rand($arr);echo
$arr[$rndKey];//輸出
a
或者
b2、第二個參數傳值大于
1
的情況;$arr
=
Array('a',
'b',
'c',
'd');$rndKey
=
array_rand($arr,
2);print_r($rndKey]);//輸出一個隨機key的數組
每次隨機取出一個數之后,應該刪除這個數,才可以保證下次不取到它。例如你的100個數,第一次隨機取一個,然后刪除它,下次再剩余的99里面隨機取一個,這樣就不會重復了。
寫代碼沒難度了吧,你寫寫看,如果希望我繼續回答,建議你粘貼一下你寫的內容,不完整或者錯誤沒關系,至少你去思考了的,而且我看了代碼知道你錯在哪里,才可以針對性的講解。
沒空等你寫代碼了,我把我的貼出來,今天晚上要熬夜加班,沒空回來看帖子了,不好意思,希望你認真學習。
?php
$arr=array();
for ($i=1;$i=100;$i++) array_push($arr,$i);
print_r($arr);
for ($i=1;$i=100;$i++){
$n=rand(0,count($arr)-1);//產生隨機數,最小值是0,最大值是數組剩余元素可數-1
echo $arr[$n]," ";//顯示取的隨機數
array_slice($arr,$n,1);//刪除剛才取到的數
}
?
首先告訴你,樓上有的人說的不對,array_rand()函數返回的是數組的鍵值,即以下代碼:
$a = array("aaaaa","bbbbb","ccccc","ddddd","eeeee");
$b = array_rand($a);
echo $b;
他們隨機返回的是0,1,2,3,4中的任意一個數字。
當然,如果將$a改成$a = array("aaaaa"="隨便什么","bbbbb"="隨便什么","ccccc"="隨便什么","ddddd"="隨便什么","eeeee"="隨便什么");則可以達到目的。
--------------------------------------------------------------------------------------
再談談另一種方法:shuttle()函數把數組中的元素按隨機順序重新排列。
$a = array("aaaaa","bbbbb","ccccc","ddddd","eeeee");
shuttle($a);
echo $a[0];
這種方法可成功達到目的,但應注意數組的鍵值!shuttle()函數為數組中的單元賦予新的鍵名。這將刪除原有的鍵名而不僅是重新排序。所以不論原來數組的鍵值是什么,重新排序后鍵值已經發生改變,所以echo $a[0];中的0不能寫成以前數組的鍵值(當然其他數字也可以,只要不超過數組長度即可)
用array_rand()函數就可以實現。
array_rand():從數組中隨機選出一個或多個元素,并返回。
語法:array_rand(array,number)
array:必需。規定輸入的數組參數。
number:可選。默認是 1。規定返回多少個隨機的元素。
例子:$a = ['a','b','c'];//定義一個二維數組
$b = $array_rand($a,1);//從數組a里隨機選取一個元素賦值給變量b。
/**
*?MySQL?隨機取記錄
*?
*?@param?$t?表
*?@param?$c?ID列,默認為id
*?@param?$n?取多少個
*?@param?$w?條件語句
*?@param?$f?bool?是否強制以多維數組形式返回,默認false
*?@return?array?取1個直接返回結果數組(除非$f為true),取1個返回多維數組,用foreach取出
*/
function?rand_row($t?,?$c?=?'id'?,?$n?=?'1',?$w?=?''?,?$f?=?false)?{
$m=new?mysqli(mysqli信息,自行查找php文檔);
if?(!empty($w))?{
$w?=?'?AND?'.$w;
}
$sql?=?"SELECT?*?FROM?`{$t}`?WHERE?{$c}?=?(SELECT?floor(RAND()?*?(SELECT?MAX({$c})?FROM?`{$t}`)))?{$w}?ORDER?BY?{$c}?LIMIT?{$n};";
$xq??=?$m-query($sql);
$r???=?array();
while?($x?=?$m-fetch_array($xq))?{
$r[]?=?$x;
}
if?($f?==?false??count($r)?==?1)?{
return?$r[0];
}?else?{
return?$r;
}
}
文章標題:Php隨機抽取一個數據 php隨機抽獎程序
本文URL:http://vcdvsql.cn/article4/hehdie.html
成都網站建設公司_創新互聯,為您提供網站制作、電子商務、虛擬主機、小程序開發、Google、微信公眾號
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯