[
{
"title": "Ceramics",
"id": "821",
"start": "2014-11-13 09:00:00",
"end": "2014-11-13 10:30:00"
},
{
"title": "Zippy",
"id": "822",
"start": "2014-11-13 10:00:00",
"end": "2014-11-13 11:30:00"
}
]
我正在英国和美国来自API的威尔士银行假期,我正在从我的数据库选择中获得用户假期......
所有数据都是正确的,但目前我只从$ holidays数组中获得1项。
我需要银行假日和假日全部以与上面链接的jSON文档相同的形式返回。
我的代码如下:
$holidays = DB::table('holiday_requests')
->where('status', 'accepted')
->join('users', 'users.user_id', '=', 'holiday_requests.user_id')
->select('users.user_firstname', 'users.user_surname', 'holiday_requests.holiday_request_date_from', 'holiday_requests.holiday_request_date_to', 'holiday_requests.holiday_request_id')
->get();
$bank_holidays = array();
$holidays_array = array();
// Get Bank Holiday jSon From External Source...
$uri = 'https://www.gov.uk/bank-holidays.json';
// Get the Results and return as a JSON Object
$json_data = @file_get_contents($uri);
// Decode The JSON Object
$json_output = json_decode($json_data);
$england_wales = "england-and-wales";
if ($json_output)
{
foreach($json_output->$england_wales->events as $event)
{
$bank_holidays['title'] = $event->title;
$bank_holidays['start'] = $event->date;
$bank_holidays['end'] = $event->date;
}
}
foreach($holidays as $holiday)
{
$holidays_array['title'] = $holiday->user_firstname;
$holidays_array['title'].= " ";
$holidays_array['title'].= $holiday->user_surname;
$holidays_array['title'].= " - ";
$holidays_array['title'].= "Holiday";
$holidays_array['id'] = $holiday->holiday_request_id;
$holidays_array['start'] = $holiday->holiday_request_date_from;
$holidays_array['end'] = $holiday->holiday_request_date_to;
}
return Response::json(array($bank_holidays));
值得一提的是我使用的是Laravel,但这更像是一个特定的PHP和数组类型的问题。
由于
答案 0 :(得分:0)
每次循环都会覆盖数组。你需要一个多维数组。像这样:
foreach($json_output->$england_wales->events as $event)
{
$bank_holidays[] = array('title' => $event->title,
'start' => $event->date,
'end' => $event->date);
}
然后对下一个循环执行相同操作,但是,您创建$bank_holidays
和$holidays_array
但仅返回$bank_holidays
。您可能想要合并它们,或者只是在两个循环中创建相同的数组。