基于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 数组遍历顺序理解
Sep 09 PHP
PHP中PDO的错误处理
Sep 04 PHP
php魔术方法与魔术变量、内置方法与内置变量的深入分析
Jun 03 PHP
解析PHP工厂模式的好处
Jun 18 PHP
解析php通过cookies获取远程网页的指定代码
Jun 25 PHP
thinkphp实现数组分页示例
Apr 13 PHP
WordPress中用于获取及自定义头像图片的PHP脚本详解
Dec 17 PHP
Laravel中Trait的用法实例详解
Mar 16 PHP
PHP数组相加操作及与array_merge的区别浅析
Nov 26 PHP
PHP实现基于栈的后缀表达式求值功能
Nov 10 PHP
Laravel框架查询构造器简单示例
May 08 PHP
详解Laravel服务容器的优势
May 29 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
Laravel框架路由配置总结、设置技巧大全
2014/09/03 PHP
php函数连续调用实例分析
2015/07/30 PHP
PHP简单数据库操作类实例【支持增删改查及链式操作】
2016/10/10 PHP
帮助避免错误的Javascript陷阱清单
2009/05/31 Javascript
Javascript匿名函数的一种应用 代码封装
2010/06/27 Javascript
js变量以及其作用域详解
2020/07/18 Javascript
javascript 基础篇1 什么是js 建立第一个js程序
2012/03/14 Javascript
javascript实现图片切换的幻灯片效果源代码
2012/12/12 Javascript
Jquery.addClass始终无效原因分析
2013/09/08 Javascript
基于jquery实现瀑布流布局
2020/06/28 Javascript
JavaScript中 ES6 generator数据类型详解
2016/08/11 Javascript
Bootstrap和Angularjs配合自制弹框的实例代码
2016/08/24 Javascript
JavaScript拖动层Div代码
2017/03/01 Javascript
JavaScript正则替换HTML标签功能示例
2017/03/02 Javascript
微信小程序wx.request实现后台数据交互功能分析
2017/11/25 Javascript
JavaScript canvas实现雨滴特效
2021/01/10 Javascript
使用 Python 获取 Linux 系统信息的代码
2014/07/13 Python
Python3访问并下载网页内容的方法
2015/07/28 Python
Python中函数eval和ast.literal_eval的区别详解
2017/08/10 Python
python爬虫之urllib库常用方法用法总结大全
2018/11/14 Python
python使用xlsxwriter实现有向无环图到Excel的转换
2018/12/12 Python
Python实现正则表达式匹配任意的邮箱方法
2018/12/20 Python
Python OpenCV对本地视频文件进行分帧保存的实例
2019/01/08 Python
Django 1.10以上版本 url 配置注意事项详解
2019/08/05 Python
浅谈ROC曲线的最佳阈值如何选取
2020/02/28 Python
vscode调试django项目的方法
2020/08/06 Python
python eventlet绿化和patch原理
2020/11/21 Python
css3的过滤效果简单实例
2016/08/03 HTML / CSS
美国诺德斯特龙百货官网:Nordstrom
2016/08/23 全球购物
护理学专业推荐信
2013/12/03 职场文书
内容编辑个人求职信
2013/12/10 职场文书
新入职员工工作总结
2015/10/15 职场文书
大学生创业计划书
2019/06/24 职场文书
2019事业单位个人工作总结范文
2019/08/26 职场文书
学习师德师风的心得体会(2篇)
2019/10/08 职场文书
七年级作文之环保作文
2019/10/17 职场文书