Использование массивов с классом Calendar в CodeIgniter - PullRequest
3 голосов
/ 23 апреля 2011

Я пытаюсь создать довольно сложный массив для моего календарного приложения.Он должен содержать даты, с названием дня, типом и событиями, если они есть.Я дошел до создания этого:

[dates] {
        [22] {
             [day] => [Friday]
             [type] => [weekday]                              
        }
        [23] {
             [day] => [Saturday]
             [type] => [Weekend]
        }
        [24] {
             [day] => [Sunday]
             [type] => [Weekend]
        }
}

Теперь я хотел бы добавить еще один ключ, называемый «события».Я хочу добавить события для каждого дня в массив. Таким образом, я мог бы получить что-то вроде:

        [24] {
             [day] => [Sunday]
             [type] => [Weekend]
             [events] {
                      [1] {
                          [title] => [test event]
                          [description] => [my event]
                          [date] => [24-04-2011]
                      }
                      [2] {
                          [title] => [test event 2]
                          [description] => [my second event]
                          [date] => [24-04-2011]
                      }
              }

Не уверен, имеет ли это смысл.

Я создал первый пример, используя этокод:

        for($i = 1; $i <= $data['days_in_curr_month']; $i++)
    {
        $day_info = $this->get_day_info($i, $data['current_month'], $data['current_year']);

        $dates[$i]['name'] = $day_info['day_name'];
        $dates[$i]['type'] = $day_info['day_type'];
    }

    return $dates;

Затем я хотел получить информацию о событии, выполнив:

$event_info = $this->get_event_info($i, $data['current_month'], $data['current_year']);

в том же цикле for.

MyМетод get_event_info выглядит следующим образом:

    public function get_event_info($day, $month, $year)
{
    $date = $year . "-" . $month . "-" . $day;
    $this->db->where('date', $date);
    $this->db->where('user_id', '1');   
    $query = $this->db->get('tblEvents');

    $event_info = array();

    foreach($query->result() as $row)
    {
        $event_info['events'][$row->id]['title'] = $row->title;
        $event_info['events'][$row->id]['description'] = $row->description;
    }

    return $event_info;

}

Он выводит массивы следующим образом:

Array ( [events] => Array ( [1] => Array ( [title] => Project 2 [description] => Test: Project 2 ) [2] => Array ( [title] => Illustrator [description] => Test: Illustrator 2 ) ) )

Теперь я возвращаю $ event_info из get_events_info в метод create_dates_list, но яЯ не уверен, как бы я добавил добавление массивов событий в массив $ date.

get_event_info получает события для каждой даты (1 - конец месяца-).Затем я хочу добавить их в мой массив $ date в формате, указанном выше во втором примере.

Я запутался, потому что это довольно сложные массивы.Заранее спасибо.

1 Ответ

2 голосов
/ 23 апреля 2011

Я думаю, все, что вам нужно сделать, это (например):

 $append_events = get_event_info($day, $month, $year);
 $array['dates']['1']['event'] = $append_events['events'];

Тогда вы можете получить доступ к вашим элементам:

 $array['dates']['1']['event'][$id]['title']    
 $array['dates']['1']['event'][$id]['description']    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...