php数组重排,关于 JSON 解码为 PHP 数组后索引被重排的问题

现在我需要解码一个地区缓存文件,该文件以 json 的形式存储地区信息,键为地区 ID ,值为地区名称。

PHP 的 json_decode() 方法可以解码为数组或对象。

解码为对象时,没碰到问题(使用 laravel 的 dd() 方法获取,下同)。

{#1961

+"province_list": {#1960

+"110000": "北京市"

+"120000": "天津市"

+"130000": "河北省"

+"140000": "山西省"

+"150000": "内蒙古自治区"

+"210000": "辽宁省"

+"220000": "吉林省"

// 以下省略 20 多个地区

}

+"city_list": {#1962

+"110100": "市辖区"

+"120100": "市辖区"

+"130100": "石家庄市"

+"130200": "唐山市"

+"130300": "秦皇岛市"

+"130400": "邯郸市"

+"130500": "邢台市"

// 以下省略 300 多个地区

}

+"county_list": {#1963

+"110101": "东城区"

+"110102": "西城区"

+"110105": "朝阳区"

+"110106": "丰台区"

+"110107": "石景山区"

+"110108": "海淀区"

+"110109": "门头沟区"

// 以下省略 3000 多个地区

}

}

但是解码为数组, county_list 里的原有索引会丢失。

array:3 [

"province_list" => array:31 [

110000 => "北京市"

120000 => "天津市"

130000 => "河北省"

140000 => "山西省"

150000 => "内蒙古自治区"

210000 => "辽宁省"

220000 => "吉林省"

// 以下省略 20 多个地区

]

"city_list" => array:344 [

110100 => "市辖区"

120100 => "市辖区"

130100 => "石家庄市"

130200 => "唐山市"

130300 => "秦皇岛市"

130400 => "邯郸市"

130500 => "邢台市"

// 以下省略 300 多个地区

]

"county_list" => array:3220 [ // 这里原有索引丢失了,变成从 0 开始重排

0 => "东城区"

1 => "西城区"

2 => "朝阳区"

3 => "丰台区"

4 => "石景山区"

5 => "海淀区"

6 => "门头沟区"

// 以下省略 3000 多个地区

]

]

也就是说, json_decode() 方法解码 json,当索引数组超过一定元素时,原有索引会丢失并重排。

有没有人研究过 json_decode() 方法解码 json ,索引数组最多可以容纳多少元素而不会导致原有索引丢失?这个和索引数组的维度是否相关?

Long2Ge

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值