PHP-如何根据另一个json更改json值
我是新的PHP编程,我需要你的灯 我有一个JSON文件,如:PHP-如何根据另一个json更改json值,php,json,dictionary,replace,Php,Json,Dictionary,Replace,我是新的PHP编程,我需要你的灯 我有一个JSON文件,如: "data": [{ "DIAGNOSTIC_TYPE_ID": 1, "VALUE": "288.0" }, { "DIAGNOSTIC_TYPE_ID": 2, "VALUE":
"data": [{
"DIAGNOSTIC_TYPE_ID": 1,
"VALUE": "288.0"
},
{
"DIAGNOSTIC_TYPE_ID": 2,
"VALUE": "-0.1"
},
{
"DIAGNOSTIC_TYPE_ID": 3,
"VALUE": "327.67"
},
{
"DIAGNOSTIC_TYPE_ID": 1,
"VALUE": "288.0"
},
{
"DIAGNOSTIC_TYPE_ID": 2,
"VALUE": "-0.1"
},
{
"DIAGNOSTIC_TYPE_ID": 3,
"VALUE": "327.67"
}]
我必须使用另一个json文件来更改它,如下所示:
"diagnostics_keys": [
{
"ID": 1,
"type": "BTTPV",
"key": "0_193_bttpv",
"unit": "V"
},
{
"ID": 2,
"type": "BTTPC",
"key": "0_195_bttpc",
"unit": "A"
},
{
"ID": 3,
"type": "AVGKMKWH",
"key": "0_202_avgkmKwh",
"unit": "Km/Kwh"
}]
我如何组合这两个(使用第二个json的ID和类型键/值,并用第一个json上的ID替换诊断_type_ID),并获得类似下面json的结果
"data": [{
"DIAGNOSTIC_TYPE_ID": BTTPV,
"VALUE": "288.0"
},
{
"DIAGNOSTIC_TYPE_ID": BTTPC,
"VALUE": "-0.1"
},
{
"DIAGNOSTIC_TYPE_ID": AVGKMKWH,
"VALUE": "327.67"
},
{
"DIAGNOSTIC_TYPE_ID": BTTPV,
"VALUE": "288.0"
},
{
"DIAGNOSTIC_TYPE_ID": BTTPC,
"VALUE": "-0.1"
},
{
"DIAGNOSTIC_TYPE_ID": AVGKMKWH,
"VALUE": "327.67"
}]
任何人都有可能知道并且可能有帮助的观点或链接吗
//change to arrays
$data = json_decode(YOUR_DATA_JSON, true); // I don't know your json variable names, so replace them
$diagnosticKeys = json_decode(YOUR_DIAGNOSTIC_KEYS_JSON, true);
//iterate over data, this is the one you want to change
foreach ($data as &$dataItem) {//(& is for replacing the values)
//another foreach for diagnostic keys
foreach ($diagnosticKeys as $diagnosticKey) {
if ($dataItem["DIAGNOSTIC_TYPE_ID"] == $diagnosticKey["ID"] {
$dataItem["DIAGNOSTIC_TYPE_ID"] = $diagnosticKey["type"];
}
}
}
//change to json again
$data = json_encode($data);
未测试,但应能正常工作。$data1=json\u decode($json1);
$data2=json_解码($json2);
$result=[];
foreach($data1->data as$key=>$value){
foreach($data2->diagnostics_键为$i=>$val){
如果($value->DIAGNOSTIC\u TYPE\u ID==$val->ID){
$value->DIAGNOSTIC_TYPE_ID=$val->TYPE;
$result[$key]['DIAGNOSTIC_TYPE_ID']=$val->TYPE;
$result[$key]['VALUE']=$VALUE->VALUE;
}
}
}
echo json_编码($result);