189 8069 5689

php随机查询数据结构,php中的五种数据结构

我想从一个名字组 数据列表中随机筛选几个人出来 用php怎么写?

echo "方法一:";

创新互联公司专注于卓尼企业网站建设,响应式网站开发,商城网站建设。卓尼网站建设公司,为卓尼等地区提供建站服务。全流程定制设计,专业设计,全程项目跟踪,创新互联公司专业和态度为您提供的服务

echo "br\n";

$str = "李一,李二,李三,李四,王一,王二,王三,王四,张一,张二,张三,张四"; //某id下的名字字段的全部文字内容,设为变量$str

$temp = explode(",", $str); //以逗号拆分字符串$str,变成数组$temp

$result = array(); //最终数组,先初始化下

for($i=0;$i4;$i++){ //循环4次取随机名字

$key = rand(0, count($temp)-1);//获取随机数

$result[] = $temp[$key];//通过随机数找到$temp数组中的值,即随机的名字,赋值给$result数组

unset($temp[$key]); //把刚才取出的名字从$temp数组中删除

sort($temp); //从新排列下$temp数组的顺序,使其键值还是从0开始,为下次循环做准备

}

echo "结果为:";

echo "br\n";

print_r($result);

echo "br\n";

echo implode(",", $result);

echo "br\n";

echo "br\n";

echo "方法二:";

echo "br\n";

$str = "李一,李二,李三,李四,王一,王二,王三,王四,张一,张二,张三,张四"; //某id下的名字字段的全部文字内容,设为变量$str

$temp = explode(",", $str); //以逗号拆分字符串$str,变成数组$temp

$rand_key = array_rand($temp, 4); //从$temp数组中找出4个随机的key值

$result = array(); //最终数组,先初始化下

foreach($rand_key as $val){ //循环4个键值

$result[] = $temp[$val]; //通过键值从temp数组找到对应的内容,即随机的名字,赋值给$result数组

}

echo "结果为:";

echo "br\n";

print_r($result);

echo "br\n";

echo implode(",", $result);

thinkphp3.1怎么随机取数据库中几条记录

直接用sql随机查询 获取数据 就可以了 SELECT * FROM tablename ORDER BY RAND() LIMIT 10

php随机输出记录集中的一条记录

如果要在这前10条里面随机显示一条,可以存到数组里面,然后随机输出,例如:

$rows=array();

while($row=mysql_fetch_array($res)){

$rows[]=$row;

}

$n=rand(0,9);

echo "a href='bbpress/topic.php?id={$rows[$n][topic_id]}'".$rows[$n][topic_title]."/br"."/a";

如果希望直接在数据库里面随机提取一条记录,那么方法是修改SQL:

select * from ... order by rand() limit 1

php返回随机数据

用PHP 随机函数

$num = select count(*) from bbs;

$id= mt_rand(1,$num);

然后执行 SQL select user,bbs from `bbs` where id = .$id;

为提高效率 最好别用 mysql的 rand()函数

php 数据库中输出的数据结构

从数据库读出来的原始数据是资源。还不是数组。

$result = mysql_Query("select * from tb_admin where parid=1")

while($list = mysql_fetch_array($result)){

print_r($list);//这里输出的数组是将原数组拆开来输出。

}

原始的数据结构应是:

array(

[0]=array(

[id]=01

[classname]=我是

[url]=baidu.com

)

[1]=array(

//这里同上,不两累赘

)

)

thinkphp 单条查询改成随机查询

// 第一种我测试了一下,需要0.5秒

$map = array('id'= array('exp',' = (SELECT FLOOR( MAX(id) * RAND()) FROM `'.C('DB_PREFIX').'custom_reply_news` )'));

$dd = M("custom_reply_news")-where($map)-order('id')-find();

dump($dd);  

// 第二种查询时间只有0.01秒

$map = array('id'= array('exp',' = (SELECT floor(RAND() * (SELECT MAX(id) FROM `'.C('DB_PREFIX').'custom_reply_news`)))'));

$dd = M("custom_reply_news")-where($map)-order('id')-find();

dump($dd);  

// 第三种加上了MIN(id)的判断。我在最开始测试的时候,就是因为没有加上MIN(id)的判断,结果有一半的时间总是查询到表中的前面几行。

$map = array('id'= array('exp',' = (SELECT floor( RAND() * ((SELECT MAX(id) FROM `'.C('DB_PREFIX').'custom_reply_news`)-(SELECT MIN(id) FROM `'.C('DB_PREFIX').'custom_reply_news`)) + (SELECT MIN(id) FROM `'.C('DB_PREFIX').'custom_reply_news`)))'));

$dd = M("custom_reply_news")-where($map)-order('id')-find();

dump($dd);    

// 第四种采用JOIN的语法比直接在WHERE中使用函数效率还要高很多

$dd = M("custom_reply_news t1")-join('(SELECT ROUND(RAND() * ((SELECT MAX(id) FROM `'.C('DB_PREFIX').'custom_reply_news`)-(SELECT MIN(id) FROM `'.C('DB_PREFIX').'custom_reply_news`))+(SELECT MIN(id) FROM `'.C('DB_PREFIX').'custom_reply_news`)) AS id) as t2')

-where("t1.id = t2.id")-order('t1.id')-find();

dump($dd);


网站栏目:php随机查询数据结构,php中的五种数据结构
链接分享:http://cdxtjz.com/article/hesgig.html

其他资讯