【问题标题】:How to re-index subarrays before json encoding?如何在 json 编码之前重新索引子数组?
【发布时间】:2018-07-28 01:25:20
【问题描述】:

这是我当前的 JSON 输出:

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

我应该怎么做才能使我的 JSON 输出如下:

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

这是我将数组转换为 JSON 的 PHP 代码

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 json multidimensional-array reindex sub-array


【解决方案1】:

您正在构建输出 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);
}

【讨论】:

    【解决方案2】:

    您尝试打印对象或数组的内容,因为您的结果是对象,并且您希望在数组中包含它们。

    [ [ 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); } 
    

    试试这个。

    【讨论】:

      【解决方案3】:

      您只需要重新索引子数组。只需解码 json,重新索引子数组,然后重新编码。

      这里有一条适合你的:

      代码:(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
      

      【讨论】:

        猜你喜欢
        • 2020-09-01
        • 2018-04-04
        • 2012-06-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-05-16
        • 1970-01-01
        相关资源
        最近更新 更多