700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 如何在一个100个元素的数组中快速的随机取出50个不重复的元素

如何在一个100个元素的数组中快速的随机取出50个不重复的元素

时间:2022-07-12 17:56:01

相关推荐

如何在一个100个元素的数组中快速的随机取出50个不重复的元素

后端开发|php教程

如何在一个100个元素的数组中快速的随机取出50个不重复的元素

后端开发-php教程

如何在一个100个元素的数组中快速的随机取出50个不重复的元素?

美容美发收银系统 源码,vscode 微信公众号,ubuntu终端wq,本地tomcat无法登录,爬虫相关简历,php7.0 curl,杭州seo博客哪个好推广,织梦网网站模板怎么下载,杰奇有看书记录的模板lzw

回复讨论(解决方案)

unity3d大型网游项目源码,vscode如何连接数据库表格,ubuntu 重启dns,tomcat线程什么时候回收,sqlite导入字段,asp动态网页设计pdf,flashfxp不能连接服务器,wordpress文章点赞插件,升级老前端框架,爬虫爱马仕,php网购,桃园县seo快排,村网站源码,择吉网页万年历代码,shopex模板免费下载,页面秒倒计时jquery,酒店管理系统jsp项目,tracert程序源代码lzw

array_rand($a, 50);

牛彩娱乐源码,ubuntu密码是多少,一个tomcat并发多少,爬虫炒股违法吗,在线教育系统php,seo手机点击lzw

现将数组去重,然后再调用随机取即可

现将数组去重,然后再调用随机取即可

数组中的数字本来就是不重复的,比如1-100个数值放在大小为100的数组中,如何快速的随机取出不重复的五十个元素?考虑到取到后面时,如49个时,会去取已经取到的数据,这个概率还是挺大的,怎么办可以解决这个问题?

1楼正解,楼主去查下手册吧,array_rand

1楼正解,楼主去查下手册吧,array_rand

请问一下array_rand是怎么实现的?

你也可以这样实现,

$num =0;$array = array(1,2,3,4,5,6,7,8,9);$arr =array();$g = 5;$tag = true;while($tag){ $count = count($array); $t = rand(0,1); if($t==1){ $arr[] = $array[$num]; unset($array[$num]); } $num++; if(count($arr)==$g){ $tag=false; } if($num == $count){$num = 0; }}

搞一个空数组,array_rand随机取出一个加入数组,取第二个开始判断取出的是否已经在数组里,成功存入50条退出循环

function swap(&$a, &$b){ $temp = $b; $b = $a; $a = $temp;}$result = array();$src = array();for($i = 0 ; $i < 40 ; $i++){ $src[] = $i + 1;}$arr_len = count($src);$count = 20;$index = 0;while($index < $count){ $random = rand(0, $arr_len - $index - 1); $result[] = $src[$random]; swap($src[$random] , $src[$arr_len - $index - 1]); $index += 1;}print_r(json_encode($result));print_r(json_encode($src));

这样写怎么样

#1 不是告诉你了吗?

$a = range(1, 100);foreach(array_rand($a, 50) as $k) $r[] = $a[$k];echo join(,, $r);

一个可能的结果

3,5,6,7,10,12,13,15,16,19,20,23,30,31,33,35,37,38,39,44,46,49,51,53,54,59,61,63,64,65,66,69,71,72,74,75,77,78,80,82,83,87,88,89,91,92,96,97,98,100

$arr = array(1,2,3,3,4,56,fdas,….);

$unique = array_unique($arr);

print_r(array_rand($unique,50));

mixed array_rand ( array input [, int num_req] )

array_rand() 在你想从数组中取出一个或多个随机的单元时相当有用。它接受 input 作为输入数组和一个可选的参数 num_req,指明了你想取出多少个单元 - 如果没有指定,默认为 1。

如果你只取出一个,array_rand() 返回一个随机单元的键名,否则就返回一个包含随机键名的数组。这样你就可以随机从数组中取出键名和值。

1.先用array_unique把获取不重复的元素。

2.使用shuffle打乱顺序

3.使用array_slice 获取50个元素。

例子:

$arr = array(1,2,3,4,5,6,7,8,9,1,2,3,4,5,6,7,8);$arr_uni = array_unique($arr);shuffle($arr_uni);$result = array_slice($arr_uni, 0, 5);print_r($result);

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。