我有一些结果例如:
10:00 - 10:00
11:00 - 11:00
12:00 - 12:00
13:00 - 13:00
17:00 - 17:00
18:00 - 18:00
19:00 - 19:00
20:00 - 20:00
我想将所有这些时间范围合并为一个或多个时间范围。 所以在这种情况下输出必须是:
10:00 - 13:00
17:00 - 20:00
我尝试将所有这些结果推送到数组中,然后检查每个数组值,如果最后一个数组值与当前数组值相同 - 60 * 60(一小时),如果是 - >>合并时间
但是使用这种方法我无法获得2个或更多的时间范围。
有人有想法吗? 我使用MySQLi和PHP。
答案 0 :(得分:0)
编辑新:我发现自己是一个答案。
对于那些想知道我是怎么做的人。
Array ( [0] => 04:00 [1] => 04:00 [2] => 09:00 [3] => 14:00 [4] => 18:00 [5] => 20:00 )
我很难解释一些东西,对不起,我很抱歉。 我的代码现在:
$last_v = null;
$array_times = array();
- $ van_besch =数据库获取值 -
if (strtotime($last_v) == (strtotime($van_besch) - 60*60)) {
array_pop($array_times);
}else{
array_push($array_times, $van_besch);
}
$last_v = $van_besch;
array_push($array_times, $van_besch);
如果每个值都被推入数组中。切片:
for ($i =0; $i < count($array_times); $i = $i + 2) {
$new_array_1 = array_slice($array_times, $i, 2);
$van_new = $new_array_1[0];
$tot_new = $new_array_1[1];
if (strtotime($van) <= strtotime($tot) && strtotime($van_new) <= strtotime($tot_new) && strtotime($van) < strtotime($tot_new) && strtotime($tot) > strtotime($van_new)) {
$error ='<div style="background-color:#ffccba; border:2px solid #d63301; border-radius:3px; color:#d63301; padding:5px;">Tijd '.$van_new.' - '.$tot_new.' niet beschikbaar!</div>';
}
}
我很高兴我自己找到了解决方案(: