通过选择键和两个阵列将两个阵列组合成一个阵列。从两个不同的数组中随机取值

时间:2014-06-24 16:01:01

标签: php arrays

$arr1 = array(
   "William",
    "Henry",
    "Filbert",
    "John",
    "Pat",
);

$arr2 = array(
   "Smith",
    "Jones",
    "Winkler",
    "Cooper",
    "Cline",
);

我想将这两个数组合并为一个数组以获得First Name => Last Name组合。现在我不想只循环一个数组然后另一个数组。我想从$ arr1中随机选择名字,然后从$ arr2中随机选择姓氏并将它们组合起来。

我的方法是:

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

我的方法是正确的还是更好的方法?我还需要一种处理重复值的方法。

1 个答案:

答案 0 :(得分:1)

shuffle( $arr1 );
shuffle( $arr2 );

$out = array_map( function( $a, $b ) { return array( 'first' => $a, 'last' => $b ); }, $arr1, $arr2 );

/*
Array
(
    [0] => Array
        (
            [first] => Pat
            [last] => Smith
        )

    [1] => Array
        (
            [first] => William
            [last] => Cooper
        )

    [2] => Array
        (
            [first] => Filbert
            [last] => Cline
        )

    [3] => Array
        (
            [first] => Henry
            [last] => Jones
        )

    [4] => Array
        (
            [first] => John
            [last] => Winkler
        )

)