我正在尝试使用json_encode()将二维PHP数组编码为JSON,我遇到了问题:
我的数组看起来像这样:
$array = array( array( 1325368800, 6898 ) );
当我使用json_encode()将其编码为JSON时,输出如下所示:
'data' : [
'0' : [ '0' : '1325368800', '1' : '6898' ]
]
我想摆脱自动生成的整数键,并将其设为:
'data': [ [ '1325368800', '6898' ] ]
任何提示?
答案 0 :(得分:2)
只有将JSON_FORCE_OBJECT
标记提供给json_encode
(live demo),才会发生这种情况:
echo json_encode(array(array( 123, 123 )));
// outputs [[123,123]]
echo json_encode(array(array( 123, 123 )), JSON_FORCE_OBJECT);
// outputs {"0":{"0":123,"1":123}}
确保未设置json_encode
的第二个参数,或将其设置为ORing JSON_*
常量生成的值。
但是,如果数据是关联数组,则可以使用array_values
来获取JSON数组而不是JSON对象:
$assocData = array('0' => array('0' => 123, '1'=>123));
$arrayData = array_map('array_values', array_values($assocData));
echo json_encode($arrayData);
顺便说一句,您引用的JSON输出无效,因为它对对象使用方括号([]
),并且在"0
之后错过了引号。