php 从一个数组中随机的取出若干个不同的数实例

前端之家收集整理的这篇文章主要介绍了php 从一个数组中随机的取出若干个不同的数实例前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

第一种算法,CSDN上别人的想法

PHP;"> $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; //循环 } } var_dump($arr);

第二种算法,自己想的。

可以在每次取出数据之后将该数据和最后没有获取的数据替换,然后再去没有取得的数据中随机获取

PHP;"> 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));

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持

猜你在找的PHP相关文章