malevi
@malevi

Как в php выбрать диапазон?

задача простая. Есть два селекта с месяцами. Есть массив, тоже с месяцами.
два селекта задают диапазон: Январь - Март. НА обработчик приходят цифры 0-2 и оно с массива с месяцами должно с помощью array_slice вытащить диапазон месяцев от 0 до 2, а это будет январь, февраль, март.

В теории все хорошо, а на практике оно у меня периодически рандомит. То есть, задаю диапазон Май-Август, а на выходе получаю май-октябрь

Подскажите что делаю не так. Вот мой код:

$month_arr = array('Январь','Февраль', 'Март', 'Апрель', 'Май', 'Июнь', 'Июль', 'Август', 'Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь');
	$str1 = $_POST['interval_one'];
	$str2 = $_POST['interval_two'];
	print_r( array_slice( $month_arr, $str1, $str2) );


<select name="interval_one" class="interval">
                          <option value='0'>Январь</option>
                          <option value='1'>Февраль</option>
                          <option value='2'>Март</option>
                          <option value='3'>Апрель</option>
                          <option value='4'>Май</option>
                          <option value='5'>Июнь</option>
                          <option value='6'>Июль</option>
                          <option value='7'>Август</option>
                          <option value='8'>Сентябрь</option>
                          <option value='9'>Октябрь</option>
                          <option value='10'>Ноябрь</option>
                          <option value='11'>Декабрь</option>
                        </select>
                        <span class="inteval_separation">—</span>
                        <select name="interval_two" class="interval">
                          <option value='0'>Январь</option>
                          <option value='1'>Февраль</option>
                          <option value='2'>Март</option>
                          <option value='3'>Апрель</option>
                          <option value='4'>Май</option>
                          <option value='5'>Июнь</option>
                          <option value='6'>Июль</option>
                          <option value='7'>Август</option>
                          <option value='8'>Сентябрь</option>
                          <option value='9'>Октябрь</option>
                          <option value='10'>Ноябрь</option>
                          <option value='11'>Декабрь</option>
                        </select>
  • Вопрос задан
  • 401 просмотр
Пригласить эксперта
Ответы на вопрос 2
kawabanga
@kawabanga
1) Храните массив с ключами и в запоминаемом для вас виде.
$month_arr =  [
1=>'Январь',
2=>'Февраль',
3=>'Март',
];


А больше и советовать нечего..
Ответ написан
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
RTFM
Третий параметр array_slice - длина вырезаемой части.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы