же, или в чем сложность?
А как тупо перебором сравнить?
$items = [11, 222, 33, 55]; $conditions = [ [ 'min' => 0, 'max' => 50, ], [ 'min' => 50, 'max' => 100, ], [ 'min' => 100, 'max' => 300, ] ]; $result = []; foreach ($items as $item) { foreach ($conditions as $condition) { if (isset($condition['min']) && isset($condition['max'])) { if ($item >= $condition['min'] && $item < $condition['max']) { $result[$condition['min'] . '-' . $condition['max']] [] = $item; } } //добавить два граничных условия с одним мин и с одним макс } }
Да, норм пашет. Изначально ушел не много не в ту сторону и не мог переключить мысли Вообще хотел так: [ 'До 50' => '{x} < 50', ‘100-200 => '{x} >= 100 and {x} < 200’, '200-300’ => '{x} >= 200 and {x} < 300’, '300-400’ => '{x} >= 300 and {x} < 400’, 'Более 400’ => '{x} > 400’, ] Методом подстановки значения в {x} подставлять числа. Удобно тем что по любому чиху можно отдать эти строки в бд. Но как эти строки сравнивать в PHP не понял.
Обсуждают сегодня