取消设置数组为 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 中的对象添加键的主要内容,如果未能解决你的问题,请参考以下文章

我如何在php中取消设置多个键

PHP无法取消设置对象内的数组元素

取消设置数组中的索引将其转换为对象

关联数组中的PHP三元语句来设置键和值?

你需要取消设置PHP内存问题吗?

根据php中的另一个数组值取消设置一个数组?