通过选择键&将两个数组组合成一个数组;随机从两个不同数组中获取值


Combine two arrays into one array by picking keys & values randomly from two different 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);

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

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
        )
)