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环境――Appserv
Dec 13 PHP
PHP面向对象编程快速入门
Dec 14 PHP
PHP实现根据银行卡号判断银行
Apr 29 PHP
Laravel实现构造函数自动依赖注入的方法
Mar 16 PHP
中高级PHP程序员应该掌握哪些技术?
Sep 23 PHP
详解PHP中foreach的用法和实例
Oct 25 PHP
10个值得深思的PHP面试题
Nov 14 PHP
php mysql操作mysql_connect连接数据库实例详解
Dec 26 PHP
PHP去除字符串最后一个字符的三种方法实例
Mar 01 PHP
PHP实现微信模拟登陆并给用户发送消息的方法【文字,图片,图文】
Jun 29 PHP
Laravel学习笔记之Artisan命令生成自定义模板的方法
Nov 22 PHP
laravel 判断查询数据库返回值的例子
Oct 11 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数组函数序列之array_intersect() 返回两个或多个数组的交集数组
2011/11/10 PHP
一个漂亮的php验证码类(分享)
2013/08/06 PHP
php中判断数组相等的方法以及数组运算符介绍
2015/03/30 PHP
Smarty模板变量调节器用法分析
2016/05/23 PHP
JavaScript创建类/对象的几种方式概述及实例
2013/05/06 Javascript
jQuery 全选/反选以及单击行改变背景色实例
2013/07/02 Javascript
javascript确认框的三种使用方法
2013/12/17 Javascript
无刷新预览所选择的图片示例代码
2014/04/02 Javascript
javascript内置对象操作详解
2015/02/04 Javascript
Jquery uploadify上传插件使用详解
2016/01/13 Javascript
jQuery.Uploadify插件实现带进度条的批量上传功能
2016/06/08 Javascript
微信小程序 开发之顶部导航栏实例代码
2017/02/23 Javascript
JS实现简易换图时钟功能分析
2018/01/04 Javascript
Vue项目服务器部署之子目录部署方法
2019/05/12 Javascript
微信小程序 轮播图实现原理及优化详解
2019/09/29 Javascript
[05:23]DOTA2-DPC中国联赛2月1日Recap集锦
2021/03/11 DOTA
Python中使用动态变量名的方法
2014/05/06 Python
wxPython中文教程入门实例
2014/06/09 Python
Python多线程和队列操作实例
2015/06/21 Python
利用Python批量生成任意尺寸的图片
2016/08/29 Python
Python查看微信撤回消息代码
2018/06/07 Python
pygame游戏之旅 添加游戏界面按键图形
2018/11/20 Python
pytorch实现特殊的Module--Sqeuential三种写法
2020/01/15 Python
Python获取对象属性的几种方式小结
2020/03/12 Python
python3爬虫GIL修改多线程实例讲解
2020/11/24 Python
python用分数表示矩阵的方法实例
2021/01/11 Python
Python的两道面试题
2013/06/29 面试题
营销与策划个人求职信
2013/09/22 职场文书
选秀节目策划方案
2014/06/06 职场文书
师德师风自我评价范文
2014/09/11 职场文书
关于成绩下滑的自我检讨书
2014/09/20 职场文书
反四风个人对照检查材料思想汇报
2014/09/25 职场文书
小学感恩节活动策划方案
2014/10/06 职场文书
银行柜员工作心得体会
2016/01/23 职场文书
Golang使用Panic与Recover进行错误捕获
2022/03/22 Golang
MySQL 数据库范式化设计理论
2022/04/22 MySQL