return $res;
}
+ /**
+ * @param $str
+ * @return int[]
+ */
+ public static function parseRange($str)
+ {
+ $res = array();
+ $str = preg_replace('|([^0-9;\-,]?)|', '', $str);
+ if ($str == '') {
+ return $res;
+ }
+ $ranges = Text::multiExplode(';,', $str);
+ foreach($ranges as $range) {
+ $e = explode('-', $range);
+ if (count($e) == 1) {
+ $res[] = intval($e[0]);
+ } else {
+ if ($e[0] > $e[1]) {
+ $res = array_merge($res, range($e[0], $e[1]));
+ } else {
+ $res = array_merge($res, range($e[1], $e[0]));
+ }
+ }
+ }
+ $res = array_unique($res);
+ sort($res, SORT_NUMERIC);
+ return $res;
+ }
+
+
}