在 PHP 中使用 json_encode() 函数使用数字键对数组进行编码时,结果为通常是带有键的对象字符串而不是数组字符串。当需要数组的数组格式时,这可能会出现问题。
问题说明:
在 JavaScript 中,数组需要连续的数字键。如果 PHP 数组中的键不是连续的数字,json_encode() 将输出一个对象。
解决方案:
要在不使用正则表达式的情况下解决此问题,我们可以使用array_values() 函数丢弃原始数组键并用从零开始的连续编号替换它们。这样可以确保编码结果是一个数组字符串。
示例:
// Non-consecutive numeric keys in PHP array $array = array( 2 => array("Afghanistan", 32, 13), 4 => array("Albania", 32, 12) ); // Remove original keys with array_values() $out = array_values($array); // Encode the resulting array $json = json_encode($out); // Output: [["Afghanistan", 32, 13], ["Albania", 32, 12]]
通过使用 array_values(),我们获得所需的 JSON 格式的数组数组并避免使用非连续数字键的对象格式。
以上是如何将具有非连续数字键的 PHP 数组编码为 JSON 数组?的详细内容。更多信息请关注PHP中文网其他相关文章!