簡體   English   中英

PHP更改數組格式

[英]PHP changing array format

我正在嘗試從中更改數組格式

{"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"]

但是仍然需要擺脫雙引號,有什么想法嗎?

試試這個代碼

$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);
$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解碼
  2. 遍歷它
  3. 創建一個新的數組與updated在所述第一索引和rate在第二
  4. 再次對其進行JSON編碼

第3步是必需的,因為JSON對象不保證任何特定的順序,因此依靠密鑰的解碼順序是不可靠的; 即使向對象添加更多鍵,它也可以確保您獲取所需的數據。

你應該試試這個

    $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:-

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM