Как переиндексировать подмассивы перед кодировкой json?

Это мой текущий вывод JSON:

{
0: {
label: 1509521006,
value: 12.324711
},
1: {
label: 1509531448,
value: 12.700929
}
}

Что я должен сделать, чтобы мой вывод JSON был таким:

[
[
1509521006,
12.324711
],
[
1509531448,
12.700929
]
]

Это мой код PHP для преобразования моего массива в JSON

if ($count > 0) {
$categoryArray = array();
foreach ($sensObj as $dataset) {
array_push($categoryArray, array(
"label" => $dataset["time"],
"value" => $dataset["value"]
));
}
print json_encode($categoryArray);
}

0

Решение

Вы создаете выходной JSON, так что просто делайте это так, как вам нужно:

<?php
if ($count > 0) {
$categoryArray = array();
foreach ($sensObj as $dataset) {
array_push($categoryArray, array(
$dataset["time"],
$dataset["value"]
));
}
print json_encode($categoryArray);
}

Или, как альтернативный синтаксис:

if ($count > 0) {
$categoryArray = [];
foreach ($sensObj as $dataset) {
$categoryArray[] = [
$dataset['time'],
$dataset['value'],
];
}
print json_encode($categoryArray);
}
0

Другие решения

что вы пытаетесь напечатать объект или массив, потому что ваш результат в объекте, и вы хотите в них в массиве.

[ [ 1509521006, 12.324711 ], [ 1509531448, 12.700929 ] ]

Вы можете создать этот JSON с помощью этого кода

<?php
if ($count > 0){
$categoryArray = array();
foreach ($sensObj as $dataset) {
array_push($categoryArray,array( $dataset["time"],  $dataset["value"]));
}
print json_encode($categoryArray); }

Попробуй это.

0

Вам нужно только переиндексировать подмассивы. Просто декодируйте JSON, переиндексируйте подмассивы, а затем перекодируйте его.

Вот одна строка для вас:

Код: (демонстрация)

echo json_encode(array_map('array_values',json_decode($your_json,true)));

Выход:

[["1509521006","12.324711"],["1509531448","12.700929"]]

Я считаю, что для реализации с вашим кодом, вы бы написали:

echo json_encode(array_map('array_values',$sensObj));
// this assumes $sensObj is an array and not an object array
0
По вопросам рекламы [email protected]