2016-02-19 3 views
-1

Я пытаюсь изменить формат массива из этогоPHP формат меняется массив

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

В диаграмме вы, вероятно, имеете более одного ключа/значения. Пожалуйста, разместите примеры более данных. – DanFromGermany

+0

HI devpro, no. Я вытаскиваю данные из базы данных и сохраняю их в массив, а затем преобразовываю массив в json -echo json_encode ($ dbresult); - и использую его в линейной диаграмме javascript -var dbresult = ; --- data.addRows (dbresult); --- –

+0

chk my update 1 – devpro

ответ

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); 
+0

Не работает с '[{" updated ":" 2016-01-28 02:00:02 "," rate ":" 0.1898 "}, {" updated ":" 2016-01- 28 02:00:02 "," rate ":" 0.1898 "}]' – DanFromGermany

+0

Это не гарантирует какой-либо конкретный порядок, который, по-видимому, требуется в результате. – deceze

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

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-декодировать его
  2. цикл через него
  3. создать новый массив с updated в первом индексе и rate во втором
  4. JSON-кодирования снова

Шаг 3 необходимо, поскольку объекты JSON не гарантируют какой-либо конкретный порядок, поэтому полагаться на декодированный порядок ключей не является надежным; и он также гарантирует, что вы получите нужные данные, даже если вы добавите больше ключей к своим объектам.

Смежные вопросы