vano.mig
Новичок
Ребята, привет. Помогите найти детскую ошибку, а то уже извелся весь...
делаю календарь, при добавлении елементов в существующий массив затираются предідущий елементы
делаю календарь, при добавлении елементов в существующий массив затираются предідущий елементы
Код:
$client = Client::find()->asArray()->where(['<', 'status', 4])->all();
$shedule = [];
$shedule[room1] = [];
$shedule[room2] = [];
$shedule[room3] = [];
if (!empty($client)) {
foreach ($client as $model) {
if (!array_key_exists('room' . $model['room'], $shedule)) {
$shedule['room' . $model['room']] = [];
}
if (!array_key_exists(date('d.m.Y', strtotime($model['date_begin'])), $shedule['room' . $model['room']])) {
$shedule['room' . $model['room']][date('d.m.Y', strtotime($model['date_begin']))] = ['reserved' => [], 'busy' => []];
}
$status = $model['status'] == 1 ? 'reserved' : 'busy';
if (!array_key_exists($status, $shedule['room' . $model['room']][date('d.m.Y', strtotime($model['date_begin']))])) {
$shedule['room' . $model['room']][date('d.m.Y', strtotime($model['date_begin']))][$status] = [];
}
if (!in_array($model['time_begin'] . '-' . $model['time_end'], $shedule['room' . $model['room']][date('d.m.Y', strtotime($model['date_begin']))][$status])) {
$shedule['room' . $model['room']][date('d.m.Y', strtotime($model['date_begin']))][$status][] = $model['time_begin'] . '-' . $model['time_end'];
}
$lists = array();
if (strtotime($model['date_begin']) != strtotime($model['date_end'])) {
$lists = $this->createDate($model['date_begin'], $model['date_end']);
foreach ($lists as $value) {
if (!array_key_exists(value, $shedule['room' . $model['room']])) {
$shedule['room' . $model['room']][$value] = [];
}
if (!array_key_exists($status, $shedule['room' . $model['room']][$value])) {
$shedule['room' . $model['room']][$value]['reserved'] = [];
$shedule['room' . $model['room']][$value]['busy'] = [];
}
if (!in_array($model['time_begin'] . '-' . $model['time_end'], $shedule['room' . $model['room']][$value][$status])) {
$shedule['room'.$model['room']][$value][$status][] = $model['time_begin'] . '-' . $model['time_end'];
}
}
unset($lists);
}
}
echo "<pre>";print_r($shedule);die;
[/code}