gpt4 book ai didi

php - 将稀疏 json 对象解码为 php 数组

转载 作者:IT老高 更新时间:2023-10-28 12:55:10 28 4
gpt4 key购买 nike

我可以使用以下命令创建一个稀疏的 php 数组(或映射):

$myarray = array(10=>'hi','test20'=>'howdy');

我想将其序列化/反序列化为 JSON。我可以使用以下命令对其进行序列化:

$json = json_encode($myarray);

产生字符串 {"10":"hi","test20":"howdy"}。但是,当我反序列化并使用以下命令将其转换为数组时:

$mynewarray = (array)json_decode($json);

我似乎丢失了带有无效 php 标识符的键的任何映射。也就是说,mynewarray 有映射 'test20'=>'howdy',但没有 10=>'hi' 也没有 '10 '=>'嗨'.

在使用标准 json_encode/json_decode 函数与 json 相互转换时,有没有办法在 php 映射中保留数字键?

(我使用的是 PHP 版本 5.2.10-2ubuntu6.4。)

最佳答案

json_decode 默认返回 stdClass 类型的对象。您将成员作为属性访问(即,$result->test20)。 10 不是属性的有效名称,这就是您丢失它的原因。

您可以将 true 作为第二个参数传递给 json_decode 以使其返回关联数组,而不是强制转换为数组:

$mynewarray = json_decode($json, true);

如果你这样做,$mynewarray[10] 会正常工作。

关于php - 将稀疏 json 对象解码为 php 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2484726/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com