最近一个项目里面有这样一个需求要实现,原来的帖子列表A,现在需要推广一个新的B类业务,你需要在1:1混合B的数据列表中随机混合,但是需要保持A和B两列原始数据的
排序,具体细节请看下面。
原理
已知的元素总数为n;
循环n次,取随机数;
a或b的值是根据随机数按
顺序从中获得的,并且将新数组推入新数组中。
代码uff1a
随机合并两个数组元素,以保持原始数据保持不变(即数组中的所有元素在组合数组中与原始协议进行排序)
功能shufflemergearray(){
mergearray美元=阵();
美元金额=计数($ 2)+数($ array2);
为($ = $总和;$ K 0;$ K){
mt_rand美元数=(1, 2);
如果($ = 1){
mergearray美元{ } = $ array2 array_shift($ array2):array_shift($ 2);
{人}
mergearray美元{ } = $ 2 array_shift($ 2):array_shift($ array2);
}
}
返回的mergearray;
}
实例:
合并前的数组:
2美元=数组(1, 2, 3,4);
$ array2 =阵列(A,B,C,D,E′);
组合数据:
mergearray美元=阵列(
0 = A,
1=1,
2 = B,
3=2,
4 = C,
5 =,
6=3,
7=4,
8 = e,
)
PHP数组随机排序
< PHP
$array =数组(a,2,3,4,5,6,7,8,9,10'、10');
洗牌(数组);随机排序数组
print_r($array); / /输出阵列
>