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

Posted

技术标签:

【中文标题】PHP - 将两个数组(相同长度)合并为一个关联?【英文标题】:PHP - Merge two arrays (same-length) into one associative? 【发布时间】:2010-11-15 02:42:01 【问题描述】:

其实很简单的问题..

是否可以在 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;
    

【问题讨论】:

"ass array",绝对是一个好记的名字。 ;) 【参考方案1】:

array_combine($keys, $values)

PS:点击我的答案!它也是一个链接!

【讨论】:

【参考方案2】:

你需要array_combine。

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

print_r($c);
?>

【讨论】:

【参考方案3】:

已经有一个array_combine function:

$combined = array_combine($keys, $values);

【讨论】:

但数组组合不会将空值放入新数组中。 :( @gumuruh 你能详细说明一下吗?【参考方案4】:

大家好,我将向您展示如何将 2 个数组合并到一个数组中

我们有 2 个数组,我将从它们中创建一个数组

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

让我们声明主数组

$main_array = array();

现在让我们用 2 个数组填充它

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" 

我希望这可以帮助某人:)

【讨论】:

以上是关于PHP - 将两个数组(相同长度)合并为一个关联?的主要内容,如果未能解决你的问题,请参考以下文章

数组的操作

php将两个数组相同的key合并到一个数组

php数组根据键名怎么合并呢

php下将多个数组合并成一个数组的方法与实例代码

php合并两个关联数组的问题

php 通过array_merge()和array+array合并数组的区别和效率比较