新聞中心
php 如何實現(xiàn),從數(shù)組中隨機取出數(shù)據(jù),還要保證下次不會再取到
$a
專注于為中小企業(yè)提供網(wǎng)站建設、成都做網(wǎng)站服務,電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業(yè)甘南免費做網(wǎng)站提供優(yōu)質(zhì)的服務。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了千余家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設實現(xiàn)規(guī)模擴充和轉(zhuǎn)變。
=
range(1,100);
function
get_one($a){
if(count($a)=1){
$key=array_rand($a,1);
$value=$a[$key];
unset($a[$key]);
return
$value;
}else{
return
"都取光了";
}
}
//每次取值可以直接
echo
"取到的值:".get_one($a);
echo
"br還剩:".count($a);
如何在數(shù)據(jù)庫中隨機取出1條記錄?PHP
/**
*?MySQL?隨機取記錄
*?
*?@param?$t?表
*?@param?$c?ID列,默認為id
*?@param?$n?取多少個
*?@param?$w?條件語句
*?@param?$f?bool?是否強制以多維數(shù)組形式返回,默認false
*?@return?array?取1個直接返回結(jié)果數(shù)組(除非$f為true),取1個返回多維數(shù)組,用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+mysql中如何從數(shù)據(jù)表student中隨機抽取若干條(例如是五條數(shù)據(jù))數(shù)據(jù)?
直接用select * from student order by rand() limit 5不是一個很好的習慣,這個要考慮到數(shù)據(jù)庫的大小問題,比如,數(shù)據(jù)量為10W以上,這樣查詢的效率是非常低的,資源也消耗挺多!你可以考慮在php與mysql結(jié)合來實現(xiàn),比如:先用mysql 的count()計算出student的總條數(shù)$sum_num,賦值到php中的變量中,后在php中更具這個總條數(shù)進行生成隨機數(shù)(這里涉及到你的5條數(shù)據(jù)是否為連續(xù)的5條隨機數(shù),還是打亂的隨機五條),這里如果生成連續(xù)的數(shù)據(jù)就只需要生成一個小于$sum_num-5的隨機數(shù)就可以了!根據(jù)這個隨機數(shù)進行l(wèi)imit取出5條就可以;如果這里需要生成打亂的隨機數(shù),就需要生成5個不相同的并且小于$sum_num隨機數(shù),最后根據(jù)這些隨機數(shù)在數(shù)據(jù)庫中查詢,第一種情況用到limit 隨機數(shù),5;;第二種情況用到in(隨機數(shù)1,隨機數(shù)2,隨機數(shù)3,隨機數(shù)4,隨機數(shù)5);在數(shù)據(jù)量大的情況下,這樣的效率和資源消耗的情況下都要比select * from student order by rand() limit 5好得多,當然如果數(shù)據(jù)量不多的話就用這個也可以!只是給你普及個知識!祝你學習愉快!(這里暫且認為你會用php生成隨機數(shù)并且這里的php生成的隨機數(shù)必須為大于0的整型哦,不會的話可以先百度、google,最后可以繼續(xù)給我留言)!
這里因為你的id會有缺失所以有的方法不適用!就不一一列舉了!
請問各位老師PHP怎么寫隨機查詢MYSQL
思路給你提供一下
先查詢出 所有的未標記的id
然后隨機出幾個id
然后查詢這幾個id對應的信息。
這個可以兼顧一下效率問題吧
當前文章:php隨機查詢數(shù)據(jù)結(jié)構(gòu) PHP常見數(shù)據(jù)結(jié)構(gòu)
網(wǎng)站URL:http://www.dlmjj.cn/article/doogigc.html