Итак, я пытаюсь создать многомерный массив, вставляя даты под их день. Однако дни показывают только одну дату из базы данных. Это также похоже на повторение. В конечном итоге моя цель — получить все даты ниже их уважаемого дня.
Что я пробовал:
-array_push, пытаясь вставить новые данные массив.
-цикл for
Код для обработки
$currentDate = new Date();
$month = $currentDate->getCurrentDate()->format("m");
$year = $currentDate->getCurrentDate()->format("Y");
$availableCollection = new AvailabilitiesCollection();
try {
$availableCollection->add(Availability::getByMonthAndYear($this->db, $month, $year));
$availabilities = $availableCollection->get();
foreach ($availabilities as $this->availability ){
$this->date = new \DateTime($this->availability['date']);
$this->dayLabel = $this->date->format('D');
$this->dataDb[] = $this->dayLabel;
}
$count = array_count_values($this->dataDb);
foreach ($availabilities as $this->availability) {
$this->date = new \DateTime($this->availability['date']);
$this->dayLabel = $this->date->format('D');
$this->insertAvailabilityInDays[$this->dayLabel] = array();
$availableData = array(
'id' => $this->availability['reservation_id'],
'date' => $this->availability['date'],
'start_at' => $this->availability['start_at'],
'end_at' => $this->availability['end_at']
);
array_push($this->insertAvailabilityInDays[$this->dayLabel], $availableData);
// for($i = 0; $i < $count[$this->dayLabel]; $i++){
// $availableData = array(
// 'id' => $this->availability['reservation_id'],
// 'date' => $this->availability['date'],
// 'start_at' => $this->availability['start_at'],
// 'end_at' => $this->availability['end_at']
// );
//
// array_push($this->insertAvailabilityInDays[$this->dayLabel], $availableData);
// }
var_dump($this->insertAvailabilityInDays);
continue;
}
// var_dump($this->insertAvailabilityInDays);
// exit;
} catch (\Exception $e) {
$this->logger->error($e);
}
Данные в моей базе данных:
+----------------+------------+----------+--------+
| reservation_id | date | start_at | end_at |
+----------------+------------+----------+--------+
| 6 | 2020-01-22 | 12:30 | 12:45 |
| 7 | 2020-01-20 | 12:50 | 13:00 |
| 8 | 2020-01-22 | 15:45 | 16:00 |
| 9 | 2020-01-21 | 14:45 | 15:00 |
+----------------+------------+----------+--------+
Мой текущий результат:
array (size=1)
'Wed' =>
array (size=4)
'id' => string '6' (length=1)
'date' => string '2020-01-22' (length=10)
'start_at' => string '12:30:00' (length=8)
'end_at' => string '12:45:00' (length=8)
/var/source/app/classes/System/Handlers/CalendarHandler.php:87:
array (size=2)
'Wed' =>
array (size=4)
'id' => string '6' (length=1)
'date' => string '2020-01-22' (length=10)
'start_at' => string '12:30:00' (length=8)
'end_at' => string '12:45:00' (length=8)
'Mon' =>
array (size=4)
'id' => string '7' (length=1)
'date' => string '2020-01-20' (length=10)
'start_at' => string '12:50:00' (length=8)
'end_at' => string '13:00:00' (length=8)
/var/source/app/classes/System/Handlers/CalendarHandler.php:87:
array (size=2)
'Wed' =>
array (size=4)
'id' => string '8' (length=1)
'date' => string '2020-01-22' (length=10)
'start_at' => string '15:45:00' (length=8)
'end_at' => string '16:00:00' (length=8)
'Mon' =>
array (size=4)
'id' => string '7' (length=1)
'date' => string '2020-01-20' (length=10)
'start_at' => string '12:50:00' (length=8)
'end_at' => string '13:00:00' (length=8)
/var/source/app/classes/System/Handlers/CalendarHandler.php:87:
array (size=3)
'Wed' =>
array (size=4)
'id' => string '8' (length=1)
'date' => string '2020-01-22' (length=10)
'start_at' => string '15:45:00' (length=8)
'end_at' => string '16:00:00' (length=8)
'Mon' =>
array (size=4)
'id' => string '7' (length=1)
'date' => string '2020-01-20' (length=10)
'start_at' => string '12:50:00' (length=8)
'end_at' => string '13:00:00' (length=8)
'Tue' =>
array (size=4)
'id' => string '9' (length=1)
'date' => string '2020-01-21' (length=10)
'start_at' => string '14:45:00' (length=8)
'end_at' => string '15:00:00' (length=8)
Я ожидаю, что каждая дата будет включена в массив с соответствующим днем. Вместе с информацией из базы данных.
Например:
'Wed' =>
array (size=4)
0 =>
'id' => string '6' (length=1)
'date' => string '2020-01-22' (length=10)
'start_at' => string '12:30:00' (length=8)
'end_at' => string '16:45:00' (length=8)
1 =>
'id' => string '8' (length=1)
'date' => string '2020-01-22' (length=10)
'start_at' => string '15:45:00' (length=8)
'end_at' => string '16:00:00' (length=8)
Подробнее здесь: https://stackoverflow.com/questions/598 ... -a-foreach
PHP Почему в многомерном массиве возвращается только один массив после foreach ⇐ Php
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Как вставить в массив без создания нумерованных индексов в многомерном массиве в PHP?
Anonymous » » в форуме Php - 0 Ответы
- 11 Просмотры
-
Последнее сообщение Anonymous
-