如何从海量PHP数组中高效提取随机的小数组片段?

2026-04-05 05:361阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

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

如何从海量PHP数组中高效提取随机的小数组片段?

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

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

如何从海量PHP数组中高效提取随机的小数组片段?

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

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

代码如下:

$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会保留。

阅读全文

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

如何从海量PHP数组中高效提取随机的小数组片段?

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

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

如何从海量PHP数组中高效提取随机的小数组片段?

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

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

代码如下:

$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会保留。

阅读全文