/** * Сформировать массив дисциплин на основнии выбора студентов * @param array $tpds то что возвращается функцией <a href="#upDises">upDises</a> * @param bool $delete удалять невыбранные дисциплины из списка * @param array $ids массив групп, по умолчанию - для всех * @return array [ [ <то что было в массиве> vdv <,numsts>] ] */ public static function upgradeChoise($tpds, $delete = true, $ids = array()) { $choices = RPIrro::getChoice($tpds, $ids); $choices = RPU::groupBy($choices, 'id_tup_d'); foreach ($tpds as $key => $tpd) { if (preg_match("/В\\.ДВ/", $tpd['sh'])) { $tpds[$key]['vdv'] = true; $ch = $choices[$tpd['id_link']]; if (empty($ch)) { if ($delete) { unset($tpds[$key]); } else { $tpds[$key]['numsts'] = array(); } } else { $tpds[$key]['numsts'] = RPU::reshape($ch, false, 'numst'); } } else { $tpds[$key]['vdv'] = false; } } return $tpds; }