从 JSON-Array 中完全删除 JSON-Object [重复]
Posted
技术标签:
【中文标题】从 JSON-Array 中完全删除 JSON-Object [重复]【英文标题】:Completely Delete JSON-Object from JSON-Array [duplicate] 【发布时间】:2019-02-22 14:41:17 【问题描述】:如果我通过 php 在 JSON 数组中取消设置一些 Obkect,那么我会得到一个带有两个空 [] 的未定义字段。但我想删除没有 [] 的整个对象。
这是我正在使用的代码:
// Unset Data Object from JSON-File
unset($data['server'][$Server][$ID]['id']);
unset($data['server'][$Server][$ID]['svc']);
“未设置”之前的 JSON 文件:
"server":
"SERVER-01": [
"svc":"SVC1", "id":1,
"svc":"SVC2", "id":2,
"svc":"SVC3", "id":3,
"svc":"SVC4", "id":4,
"svc":"SVC5", "id":5
],
"SERVER-02": [
"svc":"SVC1", "id":1,
"svc":"SVC2", "id":2,
"svc":"SVC3", "id":3,
"svc":"SVC4", "id":4,
"svc":"SVC5", "id":5
]
“未设置”后的 JSON 文件:
"server":
"SERVER-01": [
[],
"svc":"SVC2", "id":2,
"svc":"SVC3", "id":3,
"svc":"SVC4", "id":4,
"svc":"SVC5", "id":5
],
"SERVER-02": [
"svc":"SVC1", "id":1,
"svc":"SVC2", "id":2,
[],
"svc":"SVC4", "id":4,
"svc":"SVC5", "id":5
]
编辑: 我得到以下输出 unset($data['server'][$Server][$ID]:
"server":
"SERVER-01":
"1": "svc":"SVC2", "id":2,
"2": "svc":"SVC3", "id":3,
"3": "svc":"SVC4", "id":4,
"4": "svc":"SVC5", "id":5
,
"SERVER-02": [
"svc":"SVC1", "id":1,
"svc":"SVC2", "id":2,
"svc":"SVC3", "id":3,
"svc":"SVC4", "id":4,
"svc":"SVC5", "id":5
]
【问题讨论】:
unset($data['server'][$Server][$ID])
…!?
$Server
和 $ID
是什么?
【参考方案1】:
不要这样做:
// Unset Data Object from JSON-File
unset($data['server'][$Server][$ID]['id']);
unset($data['server'][$Server][$ID]['svc']);
就停在 ID 上,像这样:
// Unset Data Object from JSON-File
unset($data['server'][$Server][$ID];
现在当你json_encode
你的数组时,你会看到它完全消失了:-)
【讨论】:
如果我这样做,那么我会得到一个完全不同的 JSON 文件 -> 请参阅已编辑的问题 我必须将新数据添加到一个新数组中,然后重新编码这个数组:$var=array(); foreach($data['server'][$Server] as $key => $item) $var['server'][$Server][] = $item; echo json_encode($var, JSON_PRETTY_PRINT|JSON_NUMERIC_CHECK), "\n\n\n"; 很高兴你到了那里!祝你有美好的一天:-)以上是关于从 JSON-Array 中完全删除 JSON-Object [重复]的主要内容,如果未能解决你的问题,请参考以下文章