Друзья, помогите с алгоритмом - что-то ничего в голову не приходит. Задача в том, чтобы распознать введенные пользователем номера страниц (как при печати в ворде вводишь номера либо через запятую, либо через тире задаешь диапазон) и положить это в массив: т.е. если пользователь ввел "1,5,6-10,19" в массиве должно получиться 1,5,6,7,8,9,10 и 19...
BeInspired Тебе нужен не массив, а функция, которая по номеру и по маске-диапазону определяет, входит ли номер в маску. Представь, что будет, если пользователь введет "1-100000000".
BeInspired PHP: <?php $text="1,5,6-10,19"; preg_match_all("{(\d+)-?(\d*)}",$text,$matches,PREG_SET_ORDER); $result=array(); foreach($matches as $match) { $min=min((int)$match[1],2000); $max=min(max((int)$match[2],$min),2000); $result=array_merge($result,range($min,$max)); } sort($result); // array(1,5,6,7,8,9,10,19)