在PHP中合并2个关联数组

时间:2012-06-26 15:01:18

标签: php arrays

我有2个数组,所以首先是:

{
    "title_heading_1": "Name",
    "last_name": "Trenkle",
    "first_name": "Jason",
    "middle_name": "Jason",
}

第二个是:

{
    "Title Heading 1": "",
    "Last Name": "",
    "First Name": "",
    "Middle Name": "",
}

问题是我将如何合并这两个数组,其中第一个数组的键将被第二个数组的键替换。所以结果将是这样的:

{
    "Title Heading 1": "Name",
    "Last Name": "Trenkle",
    "First Name": "Jason",
    "Middle Name": "Jason",
}

我如何在PHP上做到这一点。我试过foreach但仍然没有得到正确的输出。

3 个答案:

答案 0 :(得分:4)

如果键和值匹配且保证按顺序排列,则可以非常轻松地执行:

$result = array_combine(array_keys($second), array_values($first));
//array_values is probably not necessary

如果第一个和/或第二个数组的键可以按任何顺序排列,但一致如上所述,这应该可以解决问题:

foreach ($first as $key => $value) {
   $second[ucwords(str_replace('_', ' ', $key))] = $value;
}

哦,如果您还不知道这样做,请使用json_decode将字符串解码为PHP数组。

答案 1 :(得分:-2)

$array1 = (array) json_decode('{
    "title_heading_1": "Name",
    "last_name": "Trenkle",
    "first_name": "Jason",
    "middle_name": "Jason",
}');

$array2 = (array) json_decode('{
    "Title Heading 1": "",
    "Last Name": "",
    "First Name": "",
    "Middle Name": "",
}');

$result = array_merge($array1, $array2);
print_r($result);

答案 2 :(得分:-2)

使用array_combine。第一个参数用于键,第二个用于值。 e.g。

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

print_r($c);
?>