【发布时间】:2019-06-18 16:46:52
【问题描述】:
我在 PHP 中有以下示例数据:
[{"id": 2088996538},{},{"id": 2077495673}]
我怎样才能结束
[{"id": 2088996538},{"id": 2077495673}]
我已经尝试了几件事,比如
unset($activities[1]);
但我最终得到了
{"0":{"id":2088996538},"2":{"id":2077495673}}
它看起来很简单,但无法弄清楚。
最终目标是清理一些 strava api 输出,删除我不使用的所有内容。
编辑:
$activities = json_decode('[{"id": 2088996538},{},{"id": 2077495673}]');
unset($activities[1]);
$activities = array_values($activities);
echo json_encode($activities);
这确实有效,我怎么会错过它。将尝试使用更大的数据集。谢谢!
【问题讨论】:
-
“我已经尝试了几件事” - 向我们展示您的尝试,我们可以从那里帮助您。
-
你说得对:我只是在编辑我的尝试:)
-
JS / JSON 没有非顺序数组,所以它们必须导出到一个对象。因此,使用 unset 时的“解决方案”是将键重置为顺序(从 0 开始),使用例如
array_values. -
好吧,如果 OP 想要一个 JSON 数组,而不是一个对象,那么...
-
我建议您查看下面的答案,因为与手动取消设置数组项相比,它们是可扩展的。
标签: php arrays object stdclass