取消设置数组中的索引将其转换为对象
Posted
技术标签:
【中文标题】取消设置数组中的索引将其转换为对象【英文标题】:Unsetting index in array turns it to an object 【发布时间】:2014-02-16 06:34:15 【问题描述】:所以我有一个存储在 CouchDB 中的 JSON 文档。这是它的重要部分:
"games":
"creator": [
"cf86d68b24c1bbf22702356572027642",
"cf86d68b24c1bbf22702356572027dd8",
"cf86d68b24c1bbf22702356572028b77"
],
"solver":
我正在尝试从数组中删除一项,比如说索引 1:
error_log("pre unset: " . json_encode($user->games));
unset($user->games->creator[1]);
error_log("post unset: " . json_encode($user->games));
问题是,它不断将我的数组转换为对象,如下所示:
pre unset: "creator":["cf86d68b24c1bbf22702356572027642","cf86d68b24c1bbf22702356572027dd8","cf86d68b24c1bbf22702356572028b77"],"solver":
post unset: "creator":"0":"cf86d68b24c1bbf22702356572027642","2":"cf86d68b24c1bbf22702356572028b77","solver":
发生了什么,我该如何解决?
【问题讨论】:
【参考方案1】:我是这样解决的:
unset($user->games->creator[1]);
$user->games->creator = array_values($user->games->creator);
【讨论】:
array_values() 期望参数 1 是数组,给定对象【参考方案2】:不要使用unset
,而是使用array_splice
。这将自动调整数组索引:
array_splice($user->games->creator, 1, 1);
【讨论】:
以上是关于取消设置数组中的索引将其转换为对象的主要内容,如果未能解决你的问题,请参考以下文章
如何以角度将 JSON 对象数组转换为 Observable 数组
plist中的NSdictionary对象需要是数组的数组,怎么转换?