如何在PHP中随机组合两个数组

时间:2010-12-07 11:44:44

标签: php arrays random

如何将两个数组合并为一个数组,我要求的方式是第三个组合数组应该包含一个数组中的一个值,而下一个数组应该包含其他数组等等...或者它可以是随机的) 例如:

$arr1 = (1, 2, 3, 4, 5);
$arr2 = (10, 20, 30, 40, 50);

和组合数组

$arr3 = (1, 10, 2, 20, 3, 30, ...);

5 个答案:

答案 0 :(得分:15)

如果它可以是随机的,这将解决您的问题:

$merged = array_merge($arr1, $arr2);
shuffle($merged);

答案 1 :(得分:6)

我还制作了一个有趣的功能,可以产生你问题中的确切输出。无论两个数组的大小如何,它都能正常工作。

function FosMerge($arr1, $arr2) {
    $res=array();
    $arr1=array_reverse($arr1);
    $arr2=array_reverse($arr2);
    foreach ($arr1 as $a1) {
        if (count($arr1)==0) {
            break;
        }
        array_push($res, array_pop($arr1));
        if (count($arr2)!=0) {
            array_push($res, array_pop($arr2));
        }
    }
    return array_merge($res, $arr2);
}

答案 2 :(得分:3)

这将返回一个随机数组:

$merged = array_merge($arr1,$arr2);
shuffle($merged);

答案 3 :(得分:1)

sort($arr3 = array_merge($arr1, $arr2));

array_merge()会将您的数组合并为一个。 sort()将对组合数组进行排序。

如果你想随机而不是排序:

shuffle($arr3 = array_merge($arr1, $arr2));

$arr3包含您要查找的数组。

答案 4 :(得分:0)

您可以使用

<?php
arr3 = array_merge ($arr1 , $arr2 );
print_r(arr3);
?>

将以

输出
$arr3 = (1,2,3,4,5,10,20,30,40,50)