我已经阅读了此question并且没有回答我的问题。
我有一个像这样的数组:
Array
(
[0] => Array
(
[COM] => 10659.68
)
[1] => Array
(
[MCD] => 1219.09
)
[2] => Array
(
[MCR] => 77047.65
)
)
当我制作一个json_encode()时,它会返回;
[{"COM":10659.68},{"MCD":1219.09},{"MCR":77047.65}]
我需要的是以这种方式获取数据:
[["COM":10659.68],["MCD":1219.09],["MCR":77047.65]]
我知道如何实现这个目标
答案 0 :(得分:4)
即使这不是有效的JSON,您也可以将{替换为[
echo str_replace(array('{','}'),array('[',']'),json_encode($your_array));
根据内容的不同,您可能需要使用正则表达式进行更复杂的替换。
答案 1 :(得分:1)
更复杂的解决方案:
function toJson($arr){
$return = array();
foreach($arr as $k => $v){
if(is_array($v)) $return[] = toJson($v);
else $return[] = sprintf('"%s":%s', $k, $v);
}
return sprintf('[%s]', implode(',', $return));
}
测试:
$input = array(
array('COM' => '10659.68'),
array('MCD' => '1219.09'),
array('MCR' => '77047.65'),
);
var_dump(toJson($input));
string(51)“[[”COM“:10659.68],[”MCD“:1219.09],[”MCR“:77047.65]]”