JSON_ENCODE 对稀疏数组进行不同的编码:对象与数组
使用稀疏数组时,了解 json_encode 的行为非常重要。稀疏数组是包含缺失索引的数组,会在数字序列中产生间隙。
问题
如提供的代码片段中所示,json_encode 最初对稀疏数组进行编码数组 $a 作为数组。但是,在使用 unset 删除元素后,后续的 json_encode 调用会生成一个 JSON 对象。
说明
JSON 无法表示缺少索引的数组。因此,当遇到此类间隙时,json_encode 会回退到将稀疏数组编码为 JSON 对象。
解决方案
要避免这种行为并确保稀疏数组一致编码为数组,您可以在应用 json_encode 之前使用 array_values($a)。此函数重新索引数组,消除间隙并确保输出一致。
以上是为什么'json_encode”根据稀疏数组的结构对其进行不同的处理?的详细内容。更多信息请关注PHP中文网其他相关文章!