返回函数 PHP 中的所有值

我面临着一些关于返回值的问题,现在我可以用变量返回,但它会自动将它分离成 4 个数组。以下是我使用 json_decode$json_template = json_decode($json_body,true);函数时的数据


{

    "username": "",

    "password": "",

    "environment": "900"

}

之后我需要通过合并变量更改值,所以我使用 Map 函数:


$map = new Map($json_template);

$maps = $map->map(function($key, $value){

            if($key == 'password'){

                 $value = 'test';

            }

            return array($key=>$value);

        });

结果变成了:


[

    {

        "username": ""

    },

    {

        "password": "test"

    },

    {

        "environment": "900"

    }

]

但我希望我的结果会像


{

    "username": "",

    "password": "test",

    "environment": "900"

}

我应该添加或更改什么代码?


芜湖不芜
浏览 177回答 2
2回答

小唯快跑啊

来自关于 map 方法的文档:返回对每个值应用回调的结果和:可调用对象应返回键将在结果映射中映射到的内容。这意味着您只需要返回修改value后的数组而不是数组{key:value}。这是我机器上的一个工作示例(PHP 7.0 CLI):$json_template = json_decode('   {      "username": "",      "password": "",      "environment": "900"  }', true);$map = new \Ds\Map($json_template);$maps = $map->map(function($key, $value){     if($key == 'password'){          $value = 'test';     }     return $value;});print_r($maps->toArray());输出:Array(    [username] =>    [password] => test    [environment] => 900)

婷婷同学_

你可以这样做:$json_template = json_decode($json_body,true);foreach($json_template as $key => $value){    if($key == 'password'){        $json_template[$key]= 'test';    }}希望能帮助到你。
打开App,查看更多内容
随时随地看视频慕课网APP