如何用PHP高效从大数据组中抽取随机小数组?

更新于
2026-09-26 02:57:49
0阅读来源:SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计287个文字,预计阅读时间需要2分钟。

如何用PHP高效从大数据组中抽取随机小数组?

有一个实用功能,用户可以通过点击换一组来刷新推荐内容。程序首先通过数据库查询获取前1000条数据,然后随机选择4条。程序编写完成后,发现运行速度很慢,每次刷新都要等待。

有个猜用户喜欢的功能,用户可以通过点击换一组,来刷新推荐的内容。

先通过数据库查询,得到前1000条数据,然后随机去除4条。

程序写完之后,发现运行的很慢,每次刷新,都要等很久才出来。

代码如下:

如何用PHP高效从大数据组中抽取随机小数组?

$arr=range(1,100000); $start=time(); for($i=0;$i<100;$i++){ $key=mt_rand(0,99999-$i); $result[]=$arr[$key]; unset($arr[$key]); sort($arr); } $end=time(); echo$end-$start;

上面的写法,用unset之后,必须进行排序。

unset只会删除键值,而key会保留。

阅读全文

本文共计287个文字,预计阅读时间需要2分钟。

如何用PHP高效从大数据组中抽取随机小数组?

有一个实用功能,用户可以通过点击换一组来刷新推荐内容。程序首先通过数据库查询获取前1000条数据,然后随机选择4条。程序编写完成后,发现运行速度很慢,每次刷新都要等待。

有个猜用户喜欢的功能,用户可以通过点击换一组,来刷新推荐的内容。

先通过数据库查询,得到前1000条数据,然后随机去除4条。

程序写完之后,发现运行的很慢,每次刷新,都要等很久才出来。

代码如下:

如何用PHP高效从大数据组中抽取随机小数组?

$arr=range(1,100000); $start=time(); for($i=0;$i<100;$i++){ $key=mt_rand(0,99999-$i); $result[]=$arr[$key]; unset($arr[$key]); sort($arr); } $end=time(); echo$end-$start;

上面的写法,用unset之后,必须进行排序。

unset只会删除键值,而key会保留。

阅读全文