如何在一个100个元素的数组中快速的随机取出50个不重复的元素
如何在一个100个元素的数组中快速的随机取出50个不重复的元素?
回复讨论(解决方案)
array_rand($a, 50);
现将数组去重,然后再调用随机取即可
现将数组去重,然后再调用随机取即可
数组中的数字本来就是不重复的,比如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);

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

JWT是一种基于JSON的开放标准,用于在各方之间安全地传输信息,主要用于身份验证和信息交换。1.JWT由Header、Payload和Signature三部分组成。2.JWT的工作原理包括生成JWT、验证JWT和解析Payload三个步骤。3.在PHP中使用JWT进行身份验证时,可以生成和验证JWT,并在高级用法中包含用户角色和权限信息。4.常见错误包括签名验证失败、令牌过期和Payload过大,调试技巧包括使用调试工具和日志记录。5.性能优化和最佳实践包括使用合适的签名算法、合理设置有效期、

SOLID原则在PHP开发中的应用包括:1.单一职责原则(SRP):每个类只负责一个功能。2.开闭原则(OCP):通过扩展而非修改实现变化。3.里氏替换原则(LSP):子类可替换基类而不影响程序正确性。4.接口隔离原则(ISP):使用细粒度接口避免依赖不使用的方法。5.依赖倒置原则(DIP):高低层次模块都依赖于抽象,通过依赖注入实现。

文章讨论了PHP 5.3中引入的PHP中的晚期静态结合(LSB),从而允许静态方法的运行时分辨率调用以获得更灵活的继承。 LSB的实用应用和潜在的触摸

如何在系统重启后自动设置unixsocket的权限每次系统重启后,我们都需要执行以下命令来修改unixsocket的权限:sudo...

使用PHP的cURL库发送JSON数据在PHP开发中,经常需要与外部API进行交互,其中一种常见的方式是使用cURL库发送POST�...
