如何将获取的json格式的值转换为数组

时间:2018-10-18 07:32:27

标签: arrays laravel-5

我正在使用laravel 5。 我从以下查询中查询日期:

 $data = DB::table('itemregistrations')
         ->select('itemregistrations.dd', 'itemregistrations.mm', 'itemregistrations.yy')
         ->where('itemregistrations.itemregistrationid', $id)
         ->get();

我想获取要放入数组中的值,以便可以将数组内嵌到字符串中。我无法以这种格式将其内爆。

dd($data); 

产生这个:

Collection {#521 ▼
#items: array:1 [▼
0 => {#515 ▼
  +"dd": 15
  +"mm": "0"
  +"yy": 2007
  }
 ]
}

如何将结果转换为:

 0 => {15, 0, 2007}

谢谢

2 个答案:

答案 0 :(得分:1)

为什么不使用toArray()方法将集合转换为数组,然后仅对获得的数组执行json_encode。 以后甚至可以在响应中传递它。

答案 1 :(得分:0)

希望对其他人有帮助。

我在这里找到了以该问题的评论为指导的解决方案:

How do I implode a json object to a string in php?

我修改了我的代码:

  //query tarikh masuk                    
   $datatarikh = DB::table('itemregistrations')
                ->select('itemregistrations.dd', 'itemregistrations.mm', 'itemregistrations.yy')
                ->where('itemregistrations.itemregistrationid', $id)
                ->get();

    //**************** format the value of the date************************                      
    $data = json_decode($datatarikh, true); 

    $val_arr = array();

    foreach($data  as $val)
    {
        foreach($val as $key => $value)
        {
             $val_arr[] = $value;
        }
    }

    $result = implode("-", $val_arr);

它将关联数组更改为要内爆的索引数组。感谢您的输入。

从数组中

 array:1 [▼
 0 => array:3 [▼
"pdrm_dd" => 15
"pdrm_mm" => "01"
"pdrm_yy" => 2007
 ]
]

输出结果:

 "15-01-2007"