public static function getTopRateSerialByUser($user_id, $arStatistic) { uasort($arStatistic["SERIALS"], function ($a, $b) { return $b - $a; }); $arStatistic["SERIALS"] = array_keys($arStatistic["SERIALS"]); $ids = array(); $dateStart = date("Y-m-d H:i:s", time() - 86400 * 7); $result = RecordTable::getList(array('filter' => array("=UF_USER_ID" => $user_id, "!UF_URL" => false, ">UF_DATE_START" => new \Bitrix\Main\Type\DateTime($dateStart, 'Y-m-d H:i:s')), 'select' => array("UF_ID" => "UF_PROG.UF_EPG_ID"), 'order' => array("UF_DATE_END" => "DESC"))); while ($arRecord = $result->fetch()) { $ids[] = $arRecord["UF_ID"]; } $sortedIds = array(); foreach ($arStatistic["SERIALS"] as $id) { if (in_array($id, $ids)) { $key = array_search($id, $ids); $sortedIds[] = $id; unset($ids[$key]); } } if (count($ids) > 0) { $sortedIds = array_merge($sortedIds, $ids); } unset($ids); $sortedIds = array_unique($sortedIds); return $sortedIds; }