基于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 相关文章推荐
Gregarius中文日期格式问题解决办法
Apr 22 PHP
php 获得汉字拼音首字母的函数
Aug 01 PHP
php 接口类与抽象类的实际作用
Nov 26 PHP
腾讯QQ php程序员面试题目整理
Jun 08 PHP
php array_push()数组函数:将一个或多个单元压入数组的末尾(入栈)
Jul 12 PHP
利用curl抓取远程页面内容的示例代码
Jul 23 PHP
php使用strtotime和date函数判断日期是否有效代码分享
Dec 25 PHP
php使用curl抓取qq空间的访客信息示例
Feb 28 PHP
php实现RSA加密类实例
Mar 26 PHP
PHP生成静态HTML页面最简单方法示例
Apr 09 PHP
浅析php静态方法与非静态方法的用法区别
May 17 PHP
php加密解密字符串示例
Oct 13 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仿discuz分页效果代码
2008/10/02 PHP
php 伪造HTTP_REFERER页面URL来源的三种方法
2016/09/22 PHP
PHP通过调用新浪API生成t.cn格式短网址链接的方法详解
2019/02/20 PHP
使用jQuery fancybox插件打造一个实用的数据传输模态弹出窗体
2013/01/15 Javascript
鼠标事件的screenY,pageY,clientY,layerY,offsetY属性详解
2015/03/12 Javascript
jQuery实现带幻灯的tab滑动切换风格菜单代码
2015/08/27 Javascript
深入探讨javascript函数式编程
2015/10/11 Javascript
jQuery Real Person验证码插件防止表单自动提交
2015/11/06 Javascript
javascript设置和获取cookie的方法实例详解
2016/01/05 Javascript
jQuery 3.0十大新特性最终版发布
2016/07/14 Javascript
JavaScript通过mouseover()实现图片变大效果的示例
2017/12/20 Javascript
详解webpack3编译兼容IE8的正确姿势
2017/12/21 Javascript
Vue 组件传值几种常用方法【总结】
2018/05/28 Javascript
axios 实现post请求时把对象obj数据转为formdata
2019/10/31 Javascript
微信小程序实现录音功能
2019/11/22 Javascript
Vue中axios拦截器如何单独配置token
2019/12/27 Javascript
jstree中的checkbox默认选中和隐藏示例代码
2019/12/29 Javascript
修改vue源码实现动态路由缓存的方法
2020/01/21 Javascript
京东优选小程序的实现代码示例
2020/02/25 Javascript
python使用PyFetion来发送短信的例子
2014/04/22 Python
Django中对数据查询结果进行排序的方法
2015/07/17 Python
Python实现更改图片尺寸大小的方法(基于Pillow包)
2016/09/19 Python
Python中按值来获取指定的键
2019/03/04 Python
解决pytorch-yolov3 train 报错的问题
2020/02/18 Python
Selenium Webdriver元素定位的八种常用方式(小结)
2021/01/13 Python
英国剑桥包官网:The Cambridge Satchel Company
2016/08/01 全球购物
BASIC HOUSE官方旗舰店:韩国著名的服装品牌
2018/09/27 全球购物
Lookfantastic阿联酋官网:英国知名美妆护肤购物网站
2020/05/26 全球购物
学生会个人自荐书范文
2014/02/12 职场文书
八一建军节演讲稿
2014/09/10 职场文书
论群众路线学习心得体会
2014/10/31 职场文书
2014年六五普法工作总结
2014/11/25 职场文书
寒假社会实践个人总结
2015/03/06 职场文书
交通事故被告答辩状
2015/05/22 职场文书
Python中的turtle画箭头,矩形,五角星
2022/03/16 Python
对象析构函数__del__在Python中何时使用
2022/03/22 Python