基于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 开发工具
Dec 06 PHP
php 验证码实例代码
Jun 01 PHP
php中关于普通表单多文件上传的处理方法
Mar 25 PHP
PHP操作数组的一些函数整理介绍
Jul 17 PHP
通达OA公共代码 php常用检测函数
Dec 14 PHP
微博短链接算法php版本实现代码
Sep 15 PHP
php ci框架中加载css和js文件失败的解决方法
Mar 03 PHP
通过php添加xml文档内容的方法
Jan 23 PHP
[原创]smarty简单模板变量输出方法
Jul 09 PHP
php+redis在实际项目中HTTP 500: Internal Server Error故障排除
Feb 05 PHP
php实现socket推送技术的示例
Dec 20 PHP
Windows平台PHP+IECapt实现网页批量截图并创建缩略图功能详解
Aug 02 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+mysql分页代码详解
2008/03/27 PHP
php实现httpclient类示例
2014/04/08 PHP
php实现监控varnish缓存服务器的状态
2014/12/30 PHP
php中define用法实例
2015/07/30 PHP
php实现的微信红包算法分析(非官方)
2015/09/25 PHP
laravel获取不到session的三种解决办法【推荐】
2018/09/16 PHP
php并发加锁问题分析与设计代码实例讲解
2021/02/26 PHP
Javascript Web Slider 焦点图示例源码
2013/10/10 Javascript
JavaScript中document.forms[0]与getElementByName区别
2015/01/21 Javascript
javaScript中定义类或对象的五种方式总结
2016/12/04 Javascript
JS实现图片切换效果
2018/11/17 Javascript
解决layui表格的表头不滚动的问题
2019/09/04 Javascript
vue 使用插槽分发内容操作示例【单个插槽、具名插槽、作用域插槽】
2020/03/06 Javascript
[27:08]完美世界DOTA2联赛PWL S2 SZ vs Rebirth 第二场 11.21
2020/11/23 DOTA
phpsir 开发 一个检测百度关键字网站排名的python 程序
2009/09/17 Python
Python中3种内建数据结构:列表、元组和字典
2014/11/30 Python
使用Python脚本将绝对url替换为相对url的教程
2015/04/24 Python
python 系统调用的实例详解
2017/07/11 Python
Numpy数组转置的两种实现方法
2018/04/17 Python
Django框架使用富文本编辑器Uedit的方法分析
2018/07/31 Python
python使用Paramiko模块实现远程文件拷贝
2019/04/30 Python
详解centos7+django+python3+mysql+阿里云部署项目全流程
2019/11/15 Python
django中media媒体路径设置的步骤
2019/11/15 Python
使用Python测试Ping主机IP和某端口是否开放的实例
2019/12/17 Python
Python如何批量获取文件夹的大小并保存
2020/03/31 Python
解决python父线程关闭后子线程不关闭问题
2020/04/25 Python
使用python实现时间序列白噪声检验方式
2020/06/03 Python
学生如何注册Pycharm专业版以及pycharm的安装
2020/09/24 Python
HTML5微信播放全屏问题的解决方法
2017/03/09 HTML / CSS
网上常见的一份Linux面试题(多项选择部分)
2014/09/09 面试题
opencv实现图像平移效果
2021/03/24 Python
同学会邀请书大全
2014/01/12 职场文书
大学新生军训自我鉴定
2014/03/18 职场文书
音乐兴趣小组活动总结
2014/07/07 职场文书
家具公司总经理岗位职责
2014/07/08 职场文书
村长党的群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书