当前位置:Gxlcms > PHP教程 > PHP从一个数组中随机的取出若干个不同的数

PHP从一个数组中随机的取出若干个不同的数

时间:2021-07-01 10:21:17 帮助过:15人阅读

PHP从一个数组中随机的取出若干个不同的数

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

  1. $num = 0;
  2. $array = array(1, 2, 3, 4, 5, 6, 7, 8, 9);
  3. $arr = array();
  4. $g = 5;
  5. $tag = true;
  6. while ($tag) {
  7. $count = count($array);
  8. $t = rand(0, 1);
  9. if ($t == 1) {
  10. $arr[] = $array[$num];
  11. unset($array[$num]);
  12. }
  13. $num ++;
  14. if (count($arr) == $g) {
  15. $tag = false;
  16. }
  17. if ($num == $count) {
  18. $num = 0; //循环
  19. }
  20. }
  21. var_dump($arr);

第二种算法,自己想的。

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

  1. function swap(&$a, &$b)
  2. {
  3. $temp = $b;
  4. $b = $a;
  5. $a = $temp;
  6. }
  7. $result = array();
  8. $src = array();
  9. for($i = 0 ; $i < 40 ; $i++)
  10. {
  11. $src[] = $i + 1;
  12. }
  13. $arr_len = count($src);
  14. $count = 20;
  15. $index = 0;
  16. while($index < $count)
  17. {
  18. $random = rand(0, $arr_len - $index - 1);
  19. $result[] = $src[$random];
  20. swap($src[$random] , $src[$arr_len - $index - 1]);
  21. $index += 1;
  22. }
  23. print_r(json_encode($result));
  24. print_r(json_encode($src));

以上就是PHP从一个数组中随机的取出若干个不同的数 的内容,更多相关内容请关注PHP中文网(www.gxlcms.com)!

人气教程排行