Я пытаюсь обработать ответ API YELP за несколько часов, и он возвращается только дни, когда он открыт. Я пытаюсь использовать все семь дней, и это немного сбивает с толку из-за способа, которым они возвращают это. Конечно, в дни, когда они не открыты, они закрыты, но это портит мои индексы массивов.
TL; DR — мне нужно найти способ заполнить ответ YELP от 0-7 на основе идентификатора дня
Вот что у меня так далеко, но это точно не работает
for($day=0; $day<7; $day++) {
$hoursFromYelp = $yelpResults->hours;
foreach($hoursFromYelp[0] as $index=>$hoursOpen) {
if($index === "open") {
if(isset($hoursOpen[$day]->day) && $hoursOpen[$day] === $day) {
//If the Day is set, then we don't bother setting the other days
$open = $hoursOpen[$day]->start;
$closed = $hoursOpen[$day]->end;
$hours = date('g:i a', strtotime($open)) . ' - ' . date('g:i a', strtotime($closed));
$barDay = barDays::create([
'bar_id' => $Bar->id,
'day_id' => $hoursOpen[$day]->day,
'type' => $types,
'musicType' => ($Bar->musicType === 'Popular Music' ? 'Popular Music' : $Bar->musicType),
'hours' => $hours
]);
$barDay->save();
} else {
$hours = 'Closed';
$tempBarDays = barDays::where('bar_id', $Bar->id)->get();
$missingDays = [0, 1, 2, 3, 4, 5, 6];
$currentDays = [];
foreach($tempBarDays as $tempBD) {
$currentDays[] = $tempBD->day_id;
}
dd($currentDays);
$barDay = barDays::create([
'bar_id' => $Bar->id,
'day_id' => $hoursOpen[$day]->day,
'type' => $types,
'musicType' => ($Bar->musicType === 'Popular Music' ? 'Popular Music' : $Bar->musicType),
'hours' => $hours
]);
}
}
}
}
По сути, я пытаюсь сохранить часы в качестве модели в своей базе данных, чтобы я мог легко передать их пользователю, но API YELP не облегчает, есть ли лучший способ сделать это для меня? Google Places возвращает «Понедельник: закрыто» в дни, когда оно закрыто, так что сделать это гораздо проще, просто выполнив цикл foreach.
Могу ли я заполнить массив, который YELP возвращает с пропущенными днями как «Закрыто»?
Вот что YELP возвращает кстати, если кто-то запутался
{#4467 ▼
+"id": "paper-tiger-bar-los-angeles"+"name": "Paper Tiger Bar"+"image_url": "https://s3-media4.fl.yelpcdn.com/bphoto/lt6bk_cW8k2A5cubSU5nUw/o.jpg"+"is_claimed": true
+"is_closed": false
+"url": "https://www.yelp.com/biz/paper-tiger-bar-los-angeles?adjust_creative=ddumpGj-_b3UoK4Fr5kUUg&utm_campaign=yelp_api_v3&utm_medium=api_v3_business_lookup&utm_sourc ▶"+"phone": "+13238443716"+"display_phone": "(323) 844-3716"+"review_count": 91
+"categories": array:2 [▶]
+"rating": 4.5
+"location": {#4470 ▶}
+"coordinates": {#4471 ▶}
+"photos": array:3 [▶]
+"price": "$$"+"hours": array:1 [▼
0 => {#4476 ▼
+"open": array:4 [▼
0 => {#4472 ▼
+"is_overnight": true
+"start": "2100"+"end": "0200"+"day": 2
}
1 => {#4473 ▼
+"is_overnight": true
+"start": "2100"+"end": "0200"+"day": 3
}
2 => {#4474 ▼
+"is_overnight": true
+"start": "2100"+"end": "0200"+"day": 4
}
3 => {#4475 ▼
+"is_overnight": true
+"start": "2100"+"end": "0200"+"day": 5
}
]
+"hours_type": "REGULAR"+"is_open_now": false
}
]
+"transactions": []
}
Задача ещё не решена.
Других решений пока нет …