php对数组内元素进行随机调换的方法

这篇文章主要介绍了php对数组内元素进行随机调换的方法,通过自定义函数实现对数组内元素进行随机调换的功能,涉及php操作数组的相关技巧,需要的朋友可以参考下

本文实例讲述了php对数组内元素进行随机调换的方法,分享给大家供大家参考,具体分析如下:

这是一个自定义的php数组元素随机调换的函数,php已经有一个内置的同样功能的函数shuffle($Array),这个代码权当参考。

  1. // I noticed that there is already a built-in function that
  2. // does the same - so don't use mine ;-)
  3. //
  4. // --> shuffle($Array);
  5. //
  6. // http://de2.php.net/manual/de/function.shuffle.php
  7. //
  8. function RandomizeArray($array){
  9. // error check:
  10. $array = (!is_array($array)) ? array($array) : $array;
  11. $a = array();
  12. $max = count($array) + 10;
  13. while(count($array) > 0){
  14. $e = array_shift($array);
  15. $r = rand(0, $max);
  16. // find a empty key:
  17. while (isset($a[$r])){
  18. $r = rand(0, $max);
  19. }
  20. $a[$r] = $e;
  21. }
  22. ksort($a);
  23. $a = array_values($a);
  24. return $a;
  25. }

使用范例:

  1. /*
  2. ** Example:
  3. */
  4. $test_array = array('why','dont','visit','www','jonas','john','de',':-)');
  5. print implode(", ", $test_array);
  6. print "\n";
  7. print implode(", ", RandomizeArray($test_array));
  8. /*
  9. Example output:
  10. why, dont, visit, www, jonas, john, de, :-)
  11. www, de, jonas, john, visit, why, :-), dont
  12. */

希望本文所述对大家的php程序设计有所帮助。