php перемещает подмассив foreach для работы в отображении календаря событий

Чтобы получить данные из API, я использую библиотеку php, которая возвращает объект, содержащий неупорядоченную информацию о событии.

Каждое событие возвращает логическое значение для каждого дня недели (понедельник, вторник и т. д.).

Думая, что идея состоит в том, чтобы:

  1. Iterate object and test each event for Weekday (Sun, Mon, etc) If TRUE
    1. create and populate an array of required details for the event
    2. создать и заполнить массив массивов событий для дня недели
    3. сортировать каждый день недели по времени события
    4. Показать события дней

Сейчас использую:

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;          }

person MikeiLL    schedule 03.03.2014    source источник
comment
Большое спасибо за разъяснение @Gordon. Окончательный код, конечно, прост.   -  person MikeiLL    schedule 05.03.2014
comment
не могу получить код для отображения в комментариях. отредактирую выше, как только я разберусь с сортировкой времени суток. (с использованием usort, я думаю)   -  person MikeiLL    schedule 05.03.2014
comment
Получил отличный простой метод сортировки второго вложенного массива на основе значения в третьем вложенном массиве в другом сообщении: stackoverflow.com/questions/22188589/   -  person MikeiLL    schedule 05.03.2014