简体   繁体   English

没有在PHP中获取正确的JSON数据

[英]not getting proper JSON data in php

$events = array();
$employeeData = array();
foreach ($rows as $fetch)
{ 
    $employeeData['start_date'] = $fetch->start_date;
    $employeeData['events']['start_time'] = $fetch->start_time;
    $employeeData['events']['end_time'] = $fetch->end_time;

    $employeeData['events']['name'] = $fetch->FirstName. ' ' .$fetch->LastName;

   array_push($events, $employeeData);
}

$success_status = array(
    'events'=> $events
);

echo json_encode($success_status, true);

Result------------ 结果 - - - - - -

{ "events": [{ "start_date": "2018-05-27", "events": { "start_time": "11:45:00", "end_time": "13:00:00", "name": "Demo" } }, { "start_date": "2018-06-29", "events": { "start_time": "15:30:00", "end_time": "15:45:00", "name": "Demo" } }, { "start_date": "2018-06-29", "events": { "start_time": "16:30:00", "end_time": "23:45:00", "name": "Demo" } }] } {“ events”:[{“ start_date”:“ 2018-05-27”,“ events”:{“ start_time”:“ 11:45:00”,“ end_time”:“ 13:00:00”,“名称“:” Demo“}},{” start_date“:” 2018-06-29“,” events“:{” start_time“:” 15:30:00“,” end_time“:” 15:45:00“, “ name”:“ Demo”}},{“ start_date”:“ 2018-06-29”,“ events”:{“ start_time”:“ 16:30:00”,“ end_time”:“ 23:45:00 “,” name“:” Demo“}}]}

I am getting the above result but I need to get the following result 我得到上述结果,但我需要得到以下结果

{ "events": [{ "start_date": "2018-05-27", "events": [{ "start_time": "11:45:00", "end_time": "13:00:00", "name": "Demo" }] }, { "start_date": "2018-06-29", "events": [{ "start_time": "15:30:00", "end_time": "15:45:00", "name": "Demo" }, { "start_time": "16:30:00", "end_time": "23:45:00", "name": "Demo" }] }] } {“ events :: [{” start_date“:” 2018-05-27“,” events“:[{” start_time“:” 11:45:00“,” end_time“:” 13:00:00“,” name“:” Demo“}]},{” start_date“:” 2018-06-29“,” events“:[{” start_time“:” 15:30:00“,” end_time“:” 15:45: 00“,” name“:” Demo“},{” start_time“:” 16:30:00“,” end_time“:” 23:45:00“,” name“:” Demo“}]}]}

I think this should produce the output your after, it's a case of adding an extra layer of arrays to the data you want nested in [{...}] ... 我认为这应该在以后产生输出,这是在要嵌套在[{...}]的数据上添加额外的数组层的情况。

$employeeData['events'][] = ['start_time' => $fetch->start_time, 
                             'end_time' =>$fetch->end_time,
                             'name' => $fetch->FirstName. ' ' .$fetch->LastName ];

So this uses [] to just add the data to an array and I've wrapped the elements into one array rather than adding it as items. 因此,这使用[]仅将数据添加到一个数组中,而我将元素包装到一个数组中,而不是将其添加为项目。

$employeeData['events']['start_time'] basically is creating a single item as an associative array. $employeeData['events']['start_time']基本上是将单个项目创建为关联数组。 What you want is an array of event items. 您想要的是一系列事件项。 So you need to put the event data into an array, then add that array to your events array, like this: 因此,您需要将事件数据放入数组中,然后将该数组添加到events数组中,如下所示:

$events = array();
$employeeData = array();
foreach ($rows as $fetch)
{ 
    $event = [];
    $employeeData['start_date'] = $fetch->start_date;
    $event['start_time'] = $fetch->start_time;
    $event['end_time'] = $fetch->end_time;

    $event['name'] = $fetch->FirstName. ' ' .$fetch->LastName;
    $employeeData['events'][] = $event;

   array_push($events, $employeeData);
}

$success_status = array(
    'events'=> $events
);

echo json_encode($success_status, true);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM