MHH*_*MHH 1 php json unset file-put-contents
我试图从test_bots.json中取消设置值并将其保存回来,但不知何故,数据格式在此过程中正在被更改.
test_bots.json包含此JSON数组:
["John","Vladimir","Toni","Joshua","Jessica"]
Run Code Online (Sandbox Code Playgroud)
我的代码看起来像这样:
$good = 'Toni';
$good_arr = file_get_contents('test_bots.json');
$good_arr = json_decode($good_arr);
if(in_array($good, $good_arr)){
$key = array_search($good, $good_arr);
unset($good_arr[$key]);
$good_arr2 = json_encode($good_arr);
file_put_contents('test_bots.json',$good_arr2);
}
Run Code Online (Sandbox Code Playgroud)
保存的输出是:
{"0":"John","1":"Vladimir","3":"Joshua","4":"Jessica"}
Run Code Online (Sandbox Code Playgroud)
但我希望输出看起来像:
["John","Vladimir","Joshua","Jessica"]
Run Code Online (Sandbox Code Playgroud)
我尝试在保存数组之前反序列化数组,但它不起作用.
为什么会这样?
为了json_encode将带有数字键的PHP数组转换为JSON数组而不是JSON对象,键必须是顺序的.(参见PHP手册json_encode中的示例#4 .)
您可以使用代码在代码中完成此操作array_values,这将在您删除其中一个项目后重新索引数组.
$good_arr2 = json_encode(array_values($good_arr));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
41 次 |
| 最近记录: |