基于php实现随机合并数组并排序(原排序)


Posted in PHP onNovember 26, 2015

最近做了一个项目,其中有这样一个需求要实现,原有帖子列表A,现在需要在A中推广新业务B,那么需要在A列表中1:1混合B中的数据,随机混合,但是需要保持A和B两列原来的数据排序,具体详情请看下文。

原理

获知总共元素数量N;
for循环N次,取随机数;
根据随机数依次从头获取A或B的值,推入新数组中;

代码:

//随机合并两个数组元素,保持原有数据的排序不变(即各个数组的元素在合并后的数组中排序与自身原来一致)
function shuffleMergeArray() {
  $mergeArray = array();
  $sum = count($array1) + count($array2);
  for ($k = $sum; $k > 0; $k--) {
    $number = mt_rand(1, 2);
    if ($number == 1) {
      $mergeArray[] = $array2 ? array_shift($array2) : array_shift($array1);
    } else {
      $mergeArray[] = $array1 ? array_shift($array1) : array_shift($array2);
    }
  }
  return $mergeArray;
}

示例:

合并前的数组:

$array1 = array(1, 2, 3, 4);
$array2 = array('a', 'b', 'c', 'd', 'e');

合并后的数据:

$mergeArray = array (
 0 => 'a',
 1 => 1,
 2 => 'b',
 3 => 2,
 4 => 'c',
 5 => 'd',
 6 => 3,
 7 => 4,
 8 => 'e',
)

php数组随机排序

<?php 
$array = array('A','2','3','4','5','6','7','8','9','10','J','Q','K'); 
shuffle($array);                    //随机排序数组 
print_r($array);                    //输出数组 
?>
PHP 相关文章推荐
PHP用星号隐藏部份用户名、身份证、IP、手机号等实例
Apr 08 PHP
php采集自中央气象台范围覆盖全国的天气预报代码实例
Jan 04 PHP
php通过修改header强制图片下载的方法
Mar 24 PHP
PHP整合七牛实现上传文件
Jul 03 PHP
学习php设计模式 php实现适配器模式
Dec 07 PHP
php  PATH_SEPARATOR判断当前服务器系统类型实例
Oct 28 PHP
PHP 根据key 给二维数组分组
Dec 09 PHP
PHP随机获取未被微信屏蔽的域名(微信域名检测)
Mar 19 PHP
PHP面向对象之工作单元(实例讲解)
Jun 26 PHP
PHP 断点续传实例详解
Nov 11 PHP
PHP大文件切割上传并带进度条功能示例
Jul 01 PHP
使用laravel和ECharts实现折线图效果的例子
Oct 09 PHP
PHP随手笔记整理之PHP脚本和JAVA连接mysql数据库
Nov 25 #PHP
php实现遍历多维数组的方法
Nov 25 #PHP
WordPress迁移时一些常见问题的解决方法整理
Nov 24 #PHP
基础的WordPress插件制作教程
Nov 24 #PHP
优化WordPress的Google字体以加速国内服务器上的运行
Nov 24 #PHP
在WordPress中实现评论头像的自定义默认和延迟加载
Nov 24 #PHP
WordPress中缩略图的使用以及相关技巧
Nov 24 #PHP
You might like
PHP将DateTime对象转化为友好时间显示的实现代码
2011/09/20 PHP
PHP的MVC模式实现原理分析(一相简单的MVC框架范例)
2014/04/29 PHP
基于php双引号中访问数组元素报错的解决方法
2018/02/01 PHP
PDO::query讲解
2019/01/29 PHP
laravel添加前台跳转成功页面示例
2019/10/22 PHP
二级域名或跨域共享Cookies的实现方法
2008/08/07 Javascript
js href的用法
2010/05/13 Javascript
jquery 学习之二 属性(html()与html(val))
2010/11/25 Javascript
JS中把字符转成ASCII值的函数示例代码
2013/11/21 Javascript
js实现局部页面打印预览原理及示例代码
2014/07/03 Javascript
详解Bootstrap glyphicons字体图标
2016/01/04 Javascript
AngularJS定时器的使用与移除操作方法【interval与timeout】
2016/12/14 Javascript
nodejs 图片预览和上传的示例代码
2017/09/30 NodeJs
JavaScript运行原理分析
2018/02/09 Javascript
vue.js通过路由实现经典的三栏布局实例代码
2018/07/08 Javascript
详解vue为什么要求组件模板只能有一个根元素
2019/07/22 Javascript
python操作字典类型的常用方法(推荐)
2016/05/16 Python
Python通过命令开启http.server服务器的方法
2017/11/04 Python
python OpenCV学习笔记直方图反向投影的实现
2018/02/07 Python
简单谈谈python基本数据类型
2018/09/26 Python
python用fsolve、leastsq对非线性方程组求解
2018/12/15 Python
Pythony运维入门之Socket网络编程详解
2019/04/15 Python
python把ipynb文件转换成pdf文件过程详解
2019/07/09 Python
python中append实例用法总结
2019/07/30 Python
Python使用get_text()方法从大段html中提取文本的实例
2019/08/27 Python
python学生信息管理系统实现代码
2019/12/17 Python
Python 定义只读属性的实现方式
2020/03/05 Python
pycharm设置python文件模板信息过程图解
2020/03/10 Python
Python GUI编程学习笔记之tkinter控件的介绍及基本使用方法详解
2020/03/30 Python
Python+Kepler.gl轻松制作酷炫路径动画的实现示例
2020/06/02 Python
python爬取微博评论的实例讲解
2021/01/15 Python
Clarks鞋美国官网:全球领军鞋履品牌
2017/05/13 全球购物
ALDI奥乐齐官方海外旗舰店:德国百年超市
2017/12/27 全球购物
台湾家适得:Homeget
2019/02/11 全球购物
教育系统干部作风整顿心得体会
2014/09/09 职场文书
分享Python获取本机IP地址的几种方法
2022/03/17 Python