0

我有 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 但仍然没有得到正确的输出。

4

3 回答 3

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 数组。

于 2012-06-26T15:06:35.063 回答
-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);
于 2012-06-26T15:06:09.107 回答
-2

使用array_combine。第一个参数用于键,第二个参数用于值。例如

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

print_r($c);
?>
于 2012-06-26T15:06:51.157 回答