使用 json_encode 将 PHP 数组编码为 JSON 数组
在 PHP 中,json_encode 函数用于将 PHP 数据结构转换为其 JSON 对应项。默认情况下,PHP 数组被编码为 JSON 对象。但是,在某些情况下,需要将数组编码为 JSON 数组。
问题陈述
考虑下面的 PHP 数组:
$array = [ [ "id" => 0, "name" => "name1", "short_name" => "n1" ], [ "id" => 2, "name" => "name2", "short_name" => "n2" ] ];
在此数组上调用 json_encode 后,生成的 JSON 是object:
{ "0": { "id": 0, "name": "name1", "short_name": "n1" }, "2": { "id": 2, "name": "name2", "short_name": "n2" } }
这不是所需的输出,因为我们需要 JSON 数组。
解决方案
将 PHP 数组编码为JSON 数组,数组必须是连续的,这意味着它的键必须是从 0 开始的连续整数。在提供的示例中,数组键是 0 和 2,即不是连续的。
要使数组连续,我们可以使用 array_values 函数:
echo json_encode(array_values($array));
这将按顺序重新索引数组,产生以下 JSON 输出:
[ { "id": 0, "name": "name1", "short_name": "n1" }, { "id": 2, "name": "name2", "short_name": "n2" } ]
通过确保数组是连续的,json_encode 将其正确编码为 JSON 数组。
以上是如何使用 json_encode 将 PHP 数组编码为 JSON 数组?的详细内容。更多信息请关注PHP中文网其他相关文章!