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


Posted in PHP onMay 12, 2015

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

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

// I noticed that there is already a built-in function that
// does the same - so don't use mine ;-)
//
// --> shuffle($Array);
//
// http://de2.php.net/manual/de/function.shuffle.php
//
function RandomizeArray($array){
  // error check:
  $array = (!is_array($array)) ? array($array) : $array;
  $a = array();
  $max = count($array) + 10;
  while(count($array) > 0){    
    $e = array_shift($array);
    $r = rand(0, $max);
    // find a empty key:
    while (isset($a[$r])){
      $r = rand(0, $max);
    }    
    $a[$r] = $e;
  }
  ksort($a);
  $a = array_values($a);
  return $a;
}

使用范例:

/*
** Example:
*/
$test_array = array('why','dont','visit','www','jonas','john','de',':-)');
print implode(", ", $test_array);
print "\n";
print implode(", ", RandomizeArray($test_array));
/*
Example output:
why, dont, visit, www, jonas, john, de, :-)
www, de, jonas, john, visit, why, :-), dont
*/

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

PHP 相关文章推荐
PHP脚本的10个技巧(7)
Oct 09 PHP
PHP无限分类代码,支持数组格式化、直接输出菜单两种方式
May 18 PHP
PHP file_exists问题杂谈
May 07 PHP
浅析使用Turck-mmcache编译来加速、优化PHP代码
Jun 20 PHP
PHP遍历XML文档所有节点的方法
Mar 12 PHP
php基于curl扩展制作跨平台的restfule 接口
May 11 PHP
PHP使用flock实现文件加锁的方法
Jul 01 PHP
PHP中PDO的事务处理分析
Apr 07 PHP
ThinkPHP使用Ueditor的方法详解
May 20 PHP
PHP jQuery+Ajax结合写批量删除功能
May 19 PHP
visual studio code 调试php方法(图文详解)
Sep 15 PHP
php微信公众号开发之校园图书馆
Oct 20 PHP
PHP SplObjectStorage使用实例
May 12 #PHP
PHP中预定义的6种接口介绍
May 12 #PHP
迪菲-赫尔曼密钥交换(Diffie?Hellman)算法原理和PHP实现版
May 12 #PHP
PHP 反射(Reflection)使用实例
May 12 #PHP
PHP Reflection API详解
May 12 #PHP
php通过curl模拟登陆DZ论坛
May 11 #PHP
PHP中的魔术方法总结和使用实例
May 11 #PHP
You might like
PHP form 表单传参明细研究
2009/07/17 PHP
深入探讨:PHP使用数据库永久连接方式操作MySQL的是与非
2013/06/05 PHP
php微信开发之图片回复功能
2018/06/14 PHP
浅析PHP7 的垃圾回收机制
2019/09/06 PHP
从新浪弄下来的全屏广告代码 与使用说明
2007/03/15 Javascript
Javascript hasOwnProperty 方法 & in 关键字
2008/11/26 Javascript
javascript+xml实现简单图片轮换(只支持IE)
2012/12/23 Javascript
js使用eval解析json实例与注意事项分享
2014/01/18 Javascript
特殊日期提示功能的实现方法
2016/06/16 Javascript
vue插件tab选项卡使用小结
2016/10/27 Javascript
Vue-resource实现ajax请求和跨域请求示例
2017/02/23 Javascript
jQuery插件之validation插件
2017/03/29 jQuery
基于node.js之调试器详解
2017/08/22 Javascript
使用vue-cli脚手架工具搭建vue-webpack项目
2019/01/14 Javascript
关于Python如何避免循环导入问题详解
2017/09/14 Python
浅谈django的render函数的参数问题
2018/10/16 Python
在python中pandas读文件,有中文字符的方法
2018/12/12 Python
对pandas通过索引提取dataframe的行方法详解
2019/02/01 Python
Django中在xadmin中集成DjangoUeditor过程详解
2019/07/24 Python
Python使用__new__()方法为对象分配内存及返回对象的引用示例
2019/09/20 Python
pytorch nn.Conv2d()中的padding以及输出大小方式
2020/01/10 Python
python turtle工具绘制四叶草的实例分享
2020/02/14 Python
详解django使用include无法跳转的解决方法
2020/03/19 Python
python框架flask入门之路由及简单实现方法
2020/06/07 Python
解决pip install psycopg2出错问题
2020/07/09 Python
python实现双人五子棋(终端版)
2020/12/30 Python
用html5的canvas画布绘制贝塞尔曲线完整代码
2013/08/14 HTML / CSS
ColourPop美国官网:卡拉泡泡,洛杉矶彩妆品牌
2019/04/28 全球购物
限量版运动鞋和街头服饰:TheDrop
2020/09/06 全球购物
九年级家长会邀请函
2014/01/15 职场文书
高速铁道技术专业求职信
2014/08/09 职场文书
材料物理专业求职信
2014/09/01 职场文书
个人售房合同协议书
2016/03/21 职场文书
python 实现的截屏工具
2021/05/08 Python
python使用glob检索文件的操作
2021/05/20 Python
Python pandas读取CSV文件的注意事项(适合新手)
2021/06/20 Python