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