Есть массив целых. Задача:
Представить все значения как диапазоны: значение .. (значение + 50)
Взять первое значение (диапазон)
отсечь все пересекающиеся с ним диапазоны ниже
взять второе
отсечь пересекающиеся
следующий
и так далее
Сохранение порядка обязательно.
Код:
<?php
$arr = [100,125,75,175,25,300,275,325,375];
$step = 50;
for ($i = 0; $i <= count($arr)-1; $i++) {
$value = $arr[$i];
$arr = array_values(array_filter($arr, function($v) use ($value,$step) {
return ($value+$step < $v or $v+$step < $value or $v == $value);
}));
}
var_dump($arr); // [100, 175, 25, 300, 375]
?>
100к чисел этим кодом обрабатывать сутки.
Перебирать без функций "вручную"?
Или что ещё можно сделать?
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Столкнулся с такой проблемой: Если пользователь находится на странице, у которой есть параметр GET, как напримерphp?article=51 и хочет авторизоваться...
Пытаюсь написать регистрацию и авторизацию на сайте с помощью API фейсбукаНеобходимые данные от FB приходят, после я их заношу в БД и устанавливаю...
Существует таблица table(timestamp, 'id', 'price')В таблице более 20 тыс