示例:
程序员文章站
2022-06-09 23:25:48
...
[算法]PHP随机合并数组并保持原排序
场景
原有帖子列表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
下一篇: PHP中文文件名
推荐阅读
-
php自定义的格式化时间示例代码_PHP教程
-
Oracle基本查询过滤排序示例解析
-
php截取字符串函数substr,iconv_substr,mb_substr示例以及优劣分析
-
Highcharts 非常实用的Javascript统计图demo示例_javascript技巧
-
Go语言使用钉钉机器人推送消息的实现示例
-
SpringBoot中默认缓存实现方案的示例代码
-
JS动态添加与删除select中的Option对象(示例代码)_javascript技巧
-
PHP+Ajax实现的检测用户名功能简单示例
-
JavaScript数据结构与算法之二叉树插入节点、生成二叉树示例
-
python支持断点续传的多线程下载示例