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 相关文章推荐
PHP4.04简明安装
Oct 09 PHP
使用Xdebug调试和优化PHP程序之[1]
Apr 17 PHP
使用PHPMYADMIN操作mysql数据库添加新用户和数据库的方法
Apr 02 PHP
PHP-redis中文文档介绍
Feb 07 PHP
php天翼开放平台短信发送接口实现方法
Dec 22 PHP
php实现短信发送代码
Jul 05 PHP
PHP实现批量修改文件后缀名的方法
Jul 30 PHP
WordPress中重置文章循环的rewind_posts()函数讲解
Jan 11 PHP
php项目开发中用到的快速排序算法分析
Jun 25 PHP
PHP使用redis消息队列发布微博的方法示例
Jun 22 PHP
Eclipse PHPEclipse 配置的具体步骤
Aug 08 PHP
PHP抽象类与接口的区别实例详解
May 09 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
杏林同学录(八)
2006/10/09 PHP
PHP父类调用子类方法的代码例子
2014/04/09 PHP
PHP邮件群发机实现代码
2016/02/16 PHP
浅谈ThinkPHP中initialize和construct的区别
2017/04/01 PHP
javascript面向对象之二 命名空间
2011/02/08 Javascript
jQuery EasyUI API 中文文档 搜索框
2011/09/29 Javascript
jQuery 图片切换插件(代码比较少)
2012/05/07 Javascript
js setTimeout opener的用法示例详解
2013/10/23 Javascript
Enter转换为Tab的小例子(兼容IE,Firefox)
2013/11/14 Javascript
文本框只能选择数据到文本框禁止手动输入
2013/11/22 Javascript
Javascript判断文件是否存在(客户端/服务器端)
2014/09/16 Javascript
js插件Jcrop自定义截取图片功能
2016/10/14 Javascript
js与jquery分别实现tab标签页功能的方法
2016/11/18 Javascript
Vue.js学习笔记之常用模板语法详解
2017/07/25 Javascript
微信小程序使用for循环动态渲染页面操作示例
2018/12/25 Javascript
vue模块拖拽实现示例代码
2019/03/09 Javascript
10个最受欢迎的 JavaScript框架(推荐)
2019/04/24 Javascript
ES6模板字符串和标签模板的应用实例分析
2019/06/25 Javascript
VSCode Vue开发推荐插件和VSCode快捷键(小结)
2020/08/08 Javascript
[40:55]DOTA2上海特级锦标赛主赛事日 - 2 败者组第二轮#4Newbee VS Fnatic
2016/03/03 DOTA
python zip文件 压缩
2008/12/24 Python
python字典的常用操作方法小结
2016/05/16 Python
Python 提取dict转换为xml/json/table并输出的实现代码
2016/08/28 Python
用Python编写一个简单的CS架构后门的方法
2018/11/20 Python
NumPy中的维度Axis详解
2019/11/26 Python
python实现电子词典
2020/03/03 Python
python多维数组分位数的求取方式
2020/03/03 Python
Python不支持 i ++ 语法的原因解析
2020/07/22 Python
Bonprix法国:时尚、鞋子、家居
2020/12/29 全球购物
父亲追悼会答谢词
2014/01/17 职场文书
个人债务授权委托书范本
2014/10/05 职场文书
2015年青年志愿者协会工作总结
2015/04/27 职场文书
自我检讨书怎么写
2015/05/07 职场文书
寻找成龙观后感
2015/06/12 职场文书
2016年乡镇综治宣传月活动总结
2016/03/16 职场文书
PHP中多字节字符串操作实例详解
2021/08/23 PHP