如何在 json 编码之前重新索引子数组?
How to re-index subarrays before json encoding?
这是我当前的 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);
}
您正在构建输出 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);
}
您尝试打印对象或数组的内容,因为您的结果在对象中,而您希望它们在数组中。
[ [ 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); }
试试这个。
您只需要 re-index 子数组。只需解码 json,重新索引子数组,然后 re-encode 它。
这里有一个 one-liner 给你:
代码:(Demo)
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
这是我当前的 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);
}
您正在构建输出 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);
}
您尝试打印对象或数组的内容,因为您的结果在对象中,而您希望它们在数组中。
[ [ 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); }
试试这个。
您只需要 re-index 子数组。只需解码 json,重新索引子数组,然后 re-encode 它。
这里有一个 one-liner 给你:
代码:(Demo)
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