#php #arrays
Вопрос:
У меня есть массив дат, которые выглядят так, это список дат.
Array
(
[0] => 2021-07-05
[1] => 2021-07-06
[2] => 2021-07-07
[3] => 2021-07-08
[4] => 2021-07-09
[5] => 2021-07-10
[6] => 2021-07-11
[7] => 2021-07-12
[8] => 2021-07-13
[9] => 2021-07-14
[10] => 2021-07-15
[11] => 2021-07-16
[12] => 2021-07-17
[13] => 2021-07-18
[14] => 2021-07-19
[15] => 2021-07-20
[16] => 2021-07-21
[17] => 2021-07-22
)
Как я могу получить нижеприведенные диапазоны дат? Каждые 6 свиданий, потому что мне нужно зацикливаться определенным образом.
Array
(
[0] => Array
(
[from] => 2021-07-05
[to] => 2021-07-11
)
[1] => Array
(
[from] => 2021-07-11
[to] => 2021-07-17
)
[2] => Array
(
[from] => 2021-07-17
[to] => 2021-07-22
)
)
Ответ №1:
Вы можете попробовать этот пример.
$from = $dates[0];
$to = $from;
$result = [];
foreach($dates as $date) {
if (strtotime($from) 60 * 60 * 24 * 6 < strtotime($date)) {
$result[] = ['from' => $from, 'to' => $to];
$from = $to;
}
$to = $date;
}
$result[] = ['from' => $from, 'to' => $to];
print_r($result);