我有以下示例结构的2数组:
$json1 = '[[
{
"Str1":"ABC",
"Str2": "Some Value",
"Str3": "Something"
},
{
"Str1": "DEF",
"Str2": "Another Value",
"Str3": "Test"
},
{
"Str1": "GHI",
"Str2": "NULL",
"Str3": "Blah"
}]]';
$json2 = '[{
"ID": "1",
"ABC": "Hello",
"DEF": "Test",
"GHI": "Something"
}]';
$arr1 = json_decode($json1);
$arr2 = json_decode($json2);
我希望他们“通过密钥”加入PHP。键是ID
,ABC
,DEF
,(仅作为示例名称)等。
键是数组1中数组的名称。同样,数组2中每个数组的第一个条目也是。不幸的是,它们的顺序不同。
因此,我需要迭代两个数组并检查键是否相同,如果是,则将Array 2的值复制到Array 1。像这样的东西:
if($array1[$key] == $array2[$key]){
$array1[$key] += $array2[$key];
}
所需的结果只是通过其“键”合并在一起的某个数组:
[0] => array(4){
"ABC" => "Hello",
"Str 1" => "ABC",
"Str 2" => "Some Value",
"Str 3" => "Something"
}
[1] => array(4){
"DEF" => "Test",
"Str 1" => "DEF",
"Str 2" => "Another Value",
"Str 3" => "Test"
}
[2] ...
这是我的解决方案:
foreach ($arr1[0] as $key => $entry) {
$arr1[0][$key][$arr1[0][$key]["Str1"]] = $arr2[0][$entry["Str1"]];
}
这将产生以下输出:
[
[
{
"Str1":"ABC",
"Str2":"Some Value",
"Str3":"Something",
"ABC":"Hello"
},
{
"Str1":"DEF",
"Str2":"Another Value",
"Str3":"Test",
"DEF":"Test"
},
{
"Str1":"GHI",
"Str2":"NULL",
"Str3":"Blah",
"GHI":"Something"
}
]
]
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句