Я пытаюсь создать довольно сложный массив для моего приложения календаря. Он должен содержать даты, с именем дня, «типом» и событиями, если таковые имеются. Я добрался до этого:
[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']);
в том же для цикла.
Мой метод 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
метод create_dates_list
, но я не уверен, как я собираюсь добавить свои массивы событий в массив $ date.
Get_event_info получает события для каждой даты (1 – конец месяца-). Затем я хочу добавить их в мой массив $ date в формате, указанном выше в моем втором примере.
Я смущен, потому что это довольно сложные массивы. Заранее спасибо.
Я думаю, все, что вам нужно сделать (например):
$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']