PHPackages                             andydune/select-closest-number-from-range - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. andydune/select-closest-number-from-range

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

andydune/select-closest-number-from-range
=========================================

It helps to narrow down range set of input numbers to specified.

v2.0.0(7y ago)012MITPHPPHP &gt;=5.6CI failing

Since Apr 13Pushed 5y ago1 watchersCompare

[ Source](https://github.com/AndyDune/SelectClosestNumberFromSet)[ Packagist](https://packagist.org/packages/andydune/select-closest-number-from-range)[ Docs](https://github.com/AndyDune/SelectClosestNumberFromSet)[ RSS](/packages/andydune-select-closest-number-from-range/feed)WikiDiscussions master Synced yesterday

READMEChangelog (3)Dependencies (2)Versions (4)Used By (0)

SelectClosestNumberFromSet
==========================

[](#selectclosestnumberfromset)

It helps to narrow down large set of input numbers to specified set.

[![Build Status](https://camo.githubusercontent.com/96066d44322913ebe90ef1cfe3c327af51a90e9ce9d03110a764764dd749e79a/68747470733a2f2f7472617669732d63692e6f72672f416e647944756e652f53656c656374436c6f736573744e756d62657246726f6d5365742e7376673f6272616e63683d6d6173746572)](https://travis-ci.org/AndyDune/SelectClosestNumberFromSet)[![Software License](https://camo.githubusercontent.com/55c0218c8f8009f06ad4ddae837ddd05301481fcf0dff8e0ed9dadda8780713e/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d627269676874677265656e2e7376673f7374796c653d666c61742d737175617265)](LICENSE)[![Packagist Version](https://camo.githubusercontent.com/bbe96f4d5241e99678af5c22be68a8ab13d309f3a6498bd58e38c9a20a702bf5/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f616e647964756e652f73656c6563742d636c6f736573742d6e756d6265722d66726f6d2d7365742e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/andydune/select-closest-number-from-set)[![Total Downloads](https://camo.githubusercontent.com/e5219e165a2f264c550ce7347721fce7bfb940ac081d2288a445f6f0bd88771a/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f616e647964756e652f73656c6563742d636c6f736573742d6e756d6265722d66726f6d2d7365742e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/andydune/select-closest-number-from-set)

It offers convenient interface for incapsulated array. Implaments strategy template for any number of filters.

Installation
------------

[](#installation)

Installation using composer:

```
composer require andydune/select-closest-number-from-set

```

Or if composer was not installed globally:

```
php composer.phar require andydune/select-closest-number-from-set

```

Or edit your `composer.json`:

```
"require" : {
     "andydune/select-closest-number-from-set": "^2"
}

```

And execute command:

```
php composer.phar update

```

Solve tasks
-----------

[](#solve-tasks)

There is hard limited set numbers is allowed. But in the input can be any number. We need to select the closest number from allowed set to use next.

This class can help to solve this task.

By default script selects low close number:

```
use AndyDune\SelectClosestNumberFromSet;
$object = new SelectClosestNumberFromSet([0, 20, 40]);
$next = $object->select(-5); // = 0
$next = $object->select(5); // = 0
$next = $object->select(39); // = 20
$next = $object->select(100); // = 40
```

Use method `selectHigh` to select high allowed number:

```
use AndyDune\SelectClosestNumberFromSet;
$object = new SelectClosestNumberFromSet([0, 20, 40]);
$object->selectHigh();
$next = $object->select(-5); // = 0
$next = $object->select(5); // = 20
$next = $object->select(39); // = 40
$next = $object->select(100); // = 40
```

###  Health Score

26

—

LowBetter than 43% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity5

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity60

Established project with proven stability

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~76 days

Total

3

Last Release

2799d ago

Major Versions

v1.0.1 → v2.0.02018-09-12

### Community

Maintainers

![](https://www.gravatar.com/avatar/79da3b2173a2cefb36abc9b4707cf2c633df8f2c748633ccf64186f5c0e7be6c?d=identicon)[AndyDune](/maintainers/AndyDune)

---

Top Contributors

[![AndyDune](https://avatars.githubusercontent.com/u/3772910?v=4)](https://github.com/AndyDune "AndyDune (11 commits)")

---

Tags

phpodmmongo

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/andydune-select-closest-number-from-range/health.svg)

```
[![Health](https://phpackages.com/badges/andydune-select-closest-number-from-range/health.svg)](https://phpackages.com/packages/andydune-select-closest-number-from-range)
```

###  Alternatives

[imanghafoori/laravel-anypass

A minimal yet powerful package to help you in development.

21421.6k](/packages/imanghafoori-laravel-anypass)[denchikby/phalcon-mongodb-odm

Phalcon MongoDB ODM

4212.8k](/packages/denchikby-phalcon-mongodb-odm)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
