我正在尝试从此
更改数组格式{"updated":"2016-01-28 02:00:02","rate":"0.1898"}
到这个
[2016-01-28 02:00 , 0.1898]
我从MySQL查询中获取第一个数组格式,需要转换为第二种格式才能在折线图中使用。
$newVal = array();
foreach ($dbresult as $key => $value) {
$newVal[] = json_encode(array_values($value));
}
echo implode(",", $newVal);
使用这个新的代码块我得到这种格式
["2016-01-28 02:00" , "0.1898"]
但仍然需要摆脱双引号,任何想法?
答案 0 :(得分:1)
试试此代码
$string = ' {"updated":"2016-01-28 02:00:02","rate":"0.1898"}';
$array = json_decode($string, true);
$str = json_encode(array_values($array));
echo str_replace('"', '', $str);
答案 1 :(得分:1)
$json = '[{"updated":"2016-01-28 02:00:02","rate":"0.1898"}]';
echo json_encode(array_map(function ($data) {
return [$data->updated, $data->rate];
}, json_decode($json)));
换句话说:
updated
的新数组,在第二个索引中创建rate
步骤3是必要的,因为JSON对象不保证任何特定的顺序,因此依赖于密钥的解码顺序是不可靠的;它还可以保证您获得所需的数据,即使您向对象添加了更多键。
答案 2 :(得分:0)
你应该试试这个
$str ='{"updated":"2016-01-28 02:00:02","rate":"0.1898"}';
$data=json_decode($str);
echo '<pre>';
echo 'json decode it returns ojbects<br>';
print_r($data);
echo 'convert object into array<br>';
$data=(array)$data;
print_r($data);
echo 'Your Output<br>';
echo json_encode(array_values($data));