PHP改变数组格式

时间:2016-02-19 11:15:41

标签: php arrays

我正在尝试从此

更改数组格式
{"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"]

但仍然需要摆脱双引号,任何想法?

3 个答案:

答案 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)));

换句话说:

  1. JSON-decode it
  2. 循环播放
  3. 在第一个索引中创建一个updated的新数组,在第二个索引中创建rate
  4. 再次对JSON进行编码
  5. 步骤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));

O/P :-