Небольшой пример PHP функции, которая позволяет узнать диапазон от start до end чисел в котором лежит искомое число.
Входные данные:
Есть массив от 0 до 100 с шагом в 5-едениц. Нужно найти в каком диапазоне шага находится число. Т.е узнать начальное число диапазона и конечное число диапазона с учётом шага.
Функция:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
/** * Вернёт массив с начальным числов диапазона и конечным число диапазона * в котором находится переданное число * @param int $num число для проверки * @param array $list массив range(start, end, range_step) - php function */ function getRangeNumber($num, $list) { $curent_range_step = []; foreach ($list as $key => $range) { $options = [ 'min_range' => $list[$key], 'max_range' => ($list[$key + 1]) ]; $check_range = filter_var($num, FILTER_VALIDATE_INT, array( 'default' => false, 'options' => $options, )); if ($check_range !== false) { $curent_range_step = [ $list[$key], $list[$key + 1], ]; } } return $curent_range_step; } |
Пример использования:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
$range_step = range(0, 100, 5);//На выходе получится массив [0,5,10,15,20,25,....100] $result_range=getRangeNumber(95, $range_step); print_r($result_range); //Результат Array ( [0] => 95 [1] => 100 ) |
Получаем что число 95 находится в диапазоне от 95 до 100.
Спасибо, сэкономили мне кучу времени!