Чтобы получить данные из API, я использую библиотеку php, которая возвращает объект, содержащий неупорядоченную информацию о событии.
Каждое событие возвращает логическое значение для каждого дня недели (понедельник, вторник и т. д.).
Думая, что идея состоит в том, чтобы:
- Iterate object and test each event for Weekday (Sun, Mon, etc)
If TRUE
- create and populate an array of required details for the event
- создать и заполнить массив массивов событий для дня недели
- сортировать каждый день недели по времени события
- Показать события дней
Сейчас использую:
if ($class->DaySunday == 1)
{ //initialize or increment counter
!isset($num_classes) ? $num_classes = 0 : $num_classes++;
//assemble Class details into array containing the day name
$single_class = build_class('sunday',$class,$num_classes);
//Create and populate @Day Schedule with Single Class arrays
foreach ($single_class as $class => $details)
$sunday_schedule[$num_classes][$class] = $details;
//Sort the Day Schedule by Hour, earliest to latest
usort($sunday_schedule, "sortFunction");
}
if ($class->DayMonday == 1) {}//etc...
Где build_class() возвращает массив для каждого класса:
function build_class($day_name,$class,$num_classes)
{
//Create and populate @Single Class details from ClassSchedule Object
$single_class['Class Name'] = $class->ClassDescription->Name;
return $single_class;
}
Кажется, что либо создание массива массивов событий на каждый день должно происходить в той же функции, которая создает массив для каждого класса, но я не могу заставить ее работать, потому что она либо создает гигантский массив событий каждый день ИЛИ перезаписывает события, так что каждый день остается только с одним событием.
Повторение вышеуказанных пяти строк кода для каждой функции IF_is_particular_weekday выглядит уродливо, и должен быть более эффективный способ. Нужно ли мне динамически создавать имя каждого массива Day?
Я даже не уверен, что создание массивов из объекта является наиболее эффективным подходом в первую очередь.
Другими словами:
динамически генерируя имя переменной no. добавить массив в другой массив. поэтому @неделя содержит @дни содержат @классы:
Array (
[monday] => Array (
[0] => Array (
[Class Name] => Work Out
[Instructor] => General Meany
)
[tuesday] => Array (
[0] => Array (
[Class Name] => Dance
[Instructor] => Ballerina
)
)
)
Это мой первый пост о стеке, и я приветствую (и опасаюсь) ваши идеи. -спасибо.
Это вызов и функция:
if ($class->DaySunday == 1)
{//initialize or increment counter for specific day
!isset($sun_class_count) ? $sun_class_count = 0 : $sun_class_count++;
$day_name = 'Sunday';
//send Day, Object, Day Count and class and day arrays to build week function
$week_schedule = build_week($day_name,$class,$sun_class_count,$single_class,$week_schedule);
}
if ($class->DayMonday == 1)
{!isset($mon_class_count) ? $mon_class_count = 0 : $mon_class_count++;
$day_name = 'Monday';}//etc
function build_week($day_name,$class,$class_count,$single_class,$week_schedule)
{
//Create and populate @Single Class details from ClassSchedule Object
$single_class['Class Name'] = $class->ClassDescription->Name;
$single_class['Instructor'] = $class->Staff->Name;
$single_class['Class Type'] = $class->ClassDescription->SessionType->Name;
$single_class['Start Time'] = $class->StartTime;
$single_class['End Time'] = $class->EndTime;
$single_class['Day Name'] = $day_name;
$week_schedule[$day_name][$class_count] = $single_class;
return $week_schedule; }