在你想從數(shù)組中取出一個(gè)或多個(gè)隨機(jī)的單元時(shí)相當(dāng)有用。它接受
創(chuàng)新互聯(lián)是專業(yè)的蠡縣網(wǎng)站建設(shè)公司,蠡縣接單;提供成都做網(wǎng)站、成都網(wǎng)站制作、成都外貿(mào)網(wǎng)站建設(shè),網(wǎng)頁設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行蠡縣網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來合作!
input
作為輸入數(shù)組和一個(gè)可選的參數(shù)
num_req,指明了你想取出多少個(gè)單元
-
如果沒有指定,默認(rèn)為
1。
如果你只取出一個(gè),array_rand()
返回一個(gè)隨機(jī)單元的鍵名,否則就返回一個(gè)包含隨機(jī)鍵名的數(shù)組。這樣你就可以隨機(jī)從數(shù)組中取出鍵名和值。
主要是用array_rand()方法
不用從頁面取id
去掉foreach
$sql="select * from phome_ecms_wma order by rand() limit 30"
就行了
方法一、利用數(shù)據(jù)庫的功能來實(shí)現(xiàn),例如MYSQL數(shù)據(jù)庫可以在SELECT語句中使用LIMIT來指定從多少行開始返回結(jié)果,例如從第2條開始30條的查詢語句為:
select * from test limit 1,30
方法二、循環(huán)的時(shí)候進(jìn)行控制,利用計(jì)數(shù)器忽略第1條記錄,這適合各種數(shù)據(jù),例子代碼:
$n=0;
while($row=mysql_fetch_array($res)){
$n++;
if?($n1){
//處理結(jié)果
}
}
select * from 表名字 where 條件(可不加) limit n,m (n表示開始位置,m表示結(jié)束位置)
那個(gè)..用table很容易實(shí)現(xiàn)的哈..
當(dāng)然..如果會(huì)div+css, 也就無所謂幾行幾列了..
可以根據(jù)窗口大小自動(dòng)調(diào)整行列布局...
用table的思路大概是
---------------------------
注意table的標(biāo)簽 tr, td
碰到tr才會(huì)開始新的行, 所以, 如果我不加tr, 把所有的數(shù)據(jù)全部放在td里面, 這樣的結(jié)果就是生成一個(gè)只有一行N列的表格...
但是., 如果在滿足一定條件的時(shí)候(例如第n條數(shù)據(jù)滿足 n % m == 0)適當(dāng)添加tr標(biāo)簽, 他就會(huì)生成新的行...
當(dāng)m == 1(n % m == 0 === true), 也就是我們看到的單列多行數(shù)據(jù)表現(xiàn)
如果m 遠(yuǎn)大于 n, (n % m === false) ,就是上面的一行多列,
當(dāng) 1 m n, 當(dāng) 滿足 (n % m == 0) 的時(shí)候就出現(xiàn)了多行多列顯示數(shù)據(jù) 了...:)
--------------------------------------------
上面是大概的思路, 自己慢慢領(lǐng)會(huì)...
如果能理解這個(gè)思路..然后自己寫出相關(guān)的代碼..是最好的..
一般是使用fopen、fgets的方法,例如:
?php
$fp=fopen('文件名.txt','r');
for ($i=1;$i100;$i++) fgets($fp);//跳過前99行
$arr=array();//初始化數(shù)組
for ($i=0;$i100;$i++) $arr[]=fgets($fp);//讀出100~200行
fclose($fp);
//下面輸出內(nèi)容
echo 'table';
for ($i=0;$i50;$i++){
echo 'Trtd'.$arr[$i].'td'.$arr[$i+50];
}
echo '/table';
?