Работа с range в PHP

Осваиваю синтаксис этого замечательного языка, и вот первый камень преткновения:

Есть такой массив: $quarters = array(1 => range(0, 15), 2 => range(16, 30), 3 => range(31, 45), 4 => range(46, 59));

И есть функция, принимающая на вход число:

function getQuarterOfAnHour($value){}

Как мне можно проверить $value на то, что он входит в один из диапазонов $quarters и вернуть ключ этого диапазона?


Ответы (2 шт):

Автор решения: Yaroslav Molchan

Достаточно циклом пройтись по $quarters и проверить через in_array есть значение в массиве значений range или нет:

function getQuarterOfAnHour($value) {
    $quarters = array(1 => range(0, 15), 2 => range(16, 30), 3 => range(31, 45), 4 => range(46, 59));

    foreach ($quarters as $key => $range) {
        if (in_array($value, $range)) {
            return $key;
        }
    }
}

var_dump(getQuarterOfAnHour(34)); // 3

Вот как-то так, только тут может быть null при условии, если значение больше 60, тоже стоит учитывать.

→ Ссылка
Автор решения: IAMLERNCSHARP

Сделал так:

function getQuarterOfAnHour($someValue){
    global $quarters;
    foreach ($quarters as $k => $v){
        if(in_array($someValue, $v)) return $k;
    }
}
→ Ссылка