[英]Multiple Conditions in array Php
I have following array with start time and end time (both saved in database)我有以下带有开始时间和结束时间的数组(都保存在数据库中)
$cars=array("09:00","09:30","10:00","10:30","11:00","11:30","12:00","12:30");
and i want to show booked time (saved in database) and availiable time, I tried with following code我想显示预订时间(保存在数据库中)和可用时间,我尝试使用以下代码
$start = "09:30";
$end = "10:30";
$availability = array_combine($cars, array_map(function ($v) use ($start, $end) {
return (strtotime($v) < strtotime($start) || strtotime($v) > strtotime($end)) ? 'available' : 'booked'; },
$cars));
showing result显示结果
Array
(
[09:00] => available
[09:30] => booked
[10:00] => booked
[10:30] => booked
[11:00] => available
[11:30] => available
[12:00] => available
[12:30] => available
)
but i have multiple start time and end time(dynamically) so how can i get result (like above) ?但我有多个开始时间和结束时间(动态),所以我怎样才能得到结果(如上)?
<?php
$times = array("09:00","09:30","10:00","10:30","11:00","11:30","12:00","12:30");
$availability = array_fill_keys($times, 'available');
function book(&$availability, $start, $end)
{
foreach($availability as $k => $v)
if(strtotime($k) >= strtotime($start) && strtotime($k) <= strtotime($end))
$availability[$k] = 'booked';
}
book($availability, '09:30', '10:30');
book($availability, '11:30', '12:00');
print_r($availability);
Output:输出:
Array
(
[09:00] => available
[09:30] => booked
[10:00] => booked
[10:30] => booked
[11:00] => available
[11:30] => booked
[12:00] => booked
[12:30] => available
)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.