取消设置数组为 PHP 中的对象添加键
Posted
技术标签:
【中文标题】取消设置数组为 PHP 中的对象添加键【英文标题】:Unsetting array adds key to objects in PHP 【发布时间】:2016-03-25 13:37:46 【问题描述】:从 json 提要中,我需要四个对象
$json['content']['locations']['location']['cams']['cam']['snow']['wi']
它包含 5 个对象。我需要对象 0、对象 1、对象 3 和对象 4。这就是我所做的:
unset($json['content']['locations']['location']['cams']['cam']['snow']['wi'][2]);
在执行此操作后,每个对象出现一个键(索引)之前。我不需要也不想要这些钥匙。 Array_values() 不能解决问题。
$reindex = array_values($json);
$json = $reindex;
直播:
http://www.api.bart-ros.nl/raurisertal/info2test(4 个对象,存在键)
http://www.api.bart-ros.nl/raurisertal/info2(5 个对象,缺少键)
如何像第二个链接一样得到它?
解决方案
unset($json['content']['locations']['location']['cams']['cam']['snow']['wi'][2]);
$reindex = array_values($json['content']['locations']['location']['cams']['cam']['snow']['wi']);
$json['content']['locations']['location']['cams']['cam']['snow']['wi'] = $reindex;
【问题讨论】:
如何使用array_values()?它应该可以完成这项工作。 array_values() 什么也没做,我在一秒钟前看到了。 如何编码为 JSON?看起来像带有 JSON_FORCE_OBJECT 选项的 json_encode。 你想要 $json['content']['locations']['location']['cams']['cam']['snow']['wi'] 的值,而不仅仅是 $json 的值。 json 原本是 XML: $simpleXml = simplexml_load_string($fileContents); $json = json_encode($simpleXml); 【参考方案1】:变化
$reindex = array_values($json);
$json = $reindex;
到
$reindex = array_values($json['content']['locations']['location']['cams']['cam']['snow']['wi']);
$json['content']['locations']['location']['cams']['cam']['snow']['wi'] = $reindex;
成功了。
【讨论】:
以上是关于取消设置数组为 PHP 中的对象添加键的主要内容,如果未能解决你的问题,请参考以下文章