首页 > 解决方案 > 在 PHP 中按键更新现有 JSON 数据中的值

问题描述

我有 JSON 数据,想按键更新值。

JSON:

{
 "language":"en",
 "education":[
                {
                   "unit":"e1",
                   "language":"en"
                 }
              ],
 "membership":[
                {
                  "uei":"21",
                  "Uifed":"failed"
                }
              ]
}

我想将uifed“失败”的值更改为“成功”。

我做了什么?

$json = '{"language":"en","education":[{"unit":"e1","language":"en"}],"membership":[{"uei":"21","Uifed":"failed"}]}';
$arrayData = json_decode($json, true);
$replacementData = array('Uifed' => 'success');
$newArrayData = array_replace_recursive($arrayData, $replacementData);

echo var_dump($newArrayData);

结果:

NULL

我怎样才能做到这一点?

标签: phparraysjson

解决方案


通过引用foreach传递值的简单示例:

$json = '{"language":"en","education":[{"unit":"e1","language":"en"}],"membership":[{"uei":"21","Uifed":"failed"}]}';
$arrayData = json_decode($json, true);
foreach ($arrayData['membership'] as &$membership) {
    if ('failed' === $membership['Uifed']) {
        $membership['Uifed'] = 'success';
    }
}
print_r($arrayData);

小提琴


推荐阅读