组合2个不同长度的阵列

Dou*_*eux 6 php arrays

我有两个不同的数组,我正在使用的例子是一个是132,另一个是136,

我需要array_combine()他们(使第一个成为关键,第二个成为价值).在我的例子中,我想保留132个键/值对,并删除没有相应匹配的额外4.

我目前有这个功能(我在php.net的文档中找到array_combine()),但它不起作用:

function array_combine2($arr1, $arr2) {
            $count1 = count($arr1);
            $count2 = count($arr2);
            $numofloops = $count2/$count1;

            $i = 0;
            while($i < $numofloops){
                $arr3 = array_slice($arr2, $count1*$i, $count1);
                $arr4[] = array_combine($arr1,$arr3);
                $i++;
            }

            return $arr4;
     }
Run Code Online (Sandbox Code Playgroud)

我一直回来

警告:array_combine()[function.array-combine]:两个参数在$ arr4 [] = ...开头的行上应该有相同数量的元素

任何建议都会有帮助,

谢谢!

Arn*_*anc 13

function array_combine2($arr1, $arr2) {
    $count = min(count($arr1), count($arr2));
    return array_combine(array_slice($arr1, 0, $count), array_slice($arr2, 0, $count));
}
Run Code Online (Sandbox Code Playgroud)


Shu*_*app 12

这是一个单行:

$res = array_combine(array_intersect_key($arr1, $arr2), array_intersect_key($arr2, $arr1));
Run Code Online (Sandbox Code Playgroud)