PHP Array to JSON Array using json_encode();
我已经使用内置函数对数组进行了编码。我需要它以数组数组的格式,如下所示:json_encode();
[["Afghanistan",32,12],["Albania",32,12]]
但是,它返回为:
{"2":["Afghanistan",32,12],"4":["Albania",32,12]}
如何在不使用任何正则表达式欺骗的情况下删除这些行号?
我已经使用内置函数对数组进行了编码。我需要它以数组数组的格式,如下所示:json_encode();
[["Afghanistan",32,12],["Albania",32,12]]
但是,它返回为:
{"2":["Afghanistan",32,12],"4":["Albania",32,12]}
如何在不使用任何正则表达式欺骗的情况下删除这些行号?
如果 PHP 数组中的数组键不是连续数字,则必须使另一个构造成为对象,因为 JavaScript 数组始终是连续的数字索引。json_encode()
在 PHP 的外部结构上使用 array_values()
丢弃原始数组键,并用从零开始的连续编号替换它们:
// Non-consecutive 3number keys are OK for PHP
// but not for a JavaScript array
$array = array(
2 => array("Afghanistan", 32, 13),
4 => array("Albania", 32, 12)
);
// array_values() removes the original keys and replaces
// with plain consecutive numbers
$out = array_values($array);
json_encode($out);
// [["Afghanistan", 32, 13], ["Albania", 32, 12]]
json_encode() 函数将帮助您在php中将数组编码为JSON。
如果您只使用json_encode函数,而没有任何特定选项,它将返回一个数组。像上面提到的问题
$array = array(
2 => array("Afghanistan",32,13),
4 => array("Albania",32,12)
);
$out = array_values($array);
json_encode($out);
// [["Afghanistan",32,13],["Albania",32,12]]
由于您正在尝试将数组转换为JSON,那么我建议JSON_FORCE_OBJECT作为json_encode中的附加选项(参数),如下所示
<?php
$array=['apple','orange','banana','strawberry'];
echo json_encode($array, JSON_FORCE_OBJECT);
// {"0":"apple","1":"orange","2":"banana","3":"strawberry"}
?>