PHP - 将两个同长度的数组合并为一个关联数组?

31

实际上是一个非常简单的问题...

在PHP中,是否可以将两个长度相同的分离数组组合成一个关联数组,其中第一个数组的值用作关联数组的键?

当然我可以这样做,但我正在寻找另一种(内置)函数或更有效的解决方案...?

function Combine($array1, $array2) {
    if(count($array1) == count($array2)) {
        $assArray = array();
        for($i=0;$i<count($array1);$i++) {
            $assArray[$array1[$i]] = $array2[$i];
        }
        return $assArray;
    }
}

4
“ass array”,绝对是一个容易记住的名字。 ;) - Domenico De Felice
4个回答

73

16

你需要使用array_combine函数。

<?php
$a = array('green', 'red', 'yellow');
$b = array('avocado', 'apple', 'banana');
$c = array_combine($a, $b);

print_r($c);
?>

10

1
但是array_combine不会将null值添加到新数组中。 :( - gumuruh
@gumuruh,你能详细说明一下吗? - Gumbo

2

大家好,我将向您展示如何将两个数组合并为一个数组

我们有两个数组,我将把它们合并成一个数组

 $data_key  = array('key1','key2');
 $data_value = array('val1','val2');

让我们声明主数组。

$main_array = array();

现在让我们用这两个数组来填充它

foreach ($data_key as $i => $key) {
         $main_array[$key] = $data_value[$i];
}

现在让我们通过使用var_dump($main_array);来查看结果。
array(2) { 
["key1"]=> string(4) "val1"
["key2"]=> string(4) "val2" 
}

我希望能够帮助到某些人:)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接