https://github.com/pccomponentes/lexicographic-ranking
Lexicographic order calculator, useful for persisting ordered lists.
https://github.com/pccomponentes/lexicographic-ranking
lexorank ordering
Last synced: about 1 year ago
JSON representation
Lexicographic order calculator, useful for persisting ordered lists.
- Host: GitHub
- URL: https://github.com/pccomponentes/lexicographic-ranking
- Owner: PcComponentes
- License: mit
- Created: 2020-11-13T18:28:10.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2021-03-30T11:24:37.000Z (about 5 years ago)
- Last Synced: 2025-04-09T05:18:02.115Z (about 1 year ago)
- Topics: lexorank, ordering
- Language: PHP
- Homepage:
- Size: 132 KB
- Stars: 3
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Lexicographic Ranking
Lexicographic order calculator, useful for persisting ordered lists.
## Installation
Install via [composer](https://getcomposer.org/)
```shell
composer require pccomponentes/lexicographic-ranking
```
## Usage
```php
$calculator = new RankingCalculator(
new Alpha36TokenSet(),
new DynamicMidPosition()
);
echo $calculator->between('A', 'B'); // AU
echo $calculator->between('F6', 'Z'); // P
echo $calculator->between('FB', 'FW'); // FL
echo $calculator->between(null, '7'); // 3
echo $calculator->between(null, null); // U
```
## Config options
### Token sets
The char pool to create the rankings. The following are available:
```
NumericTokenSet (0-9)
Alpha36TokenSet (0-9 and A-Z)
Alpha62TokenSet (0-9 and A-z)
```
To create a custom one extend from TokenSet.
### Position
The space to be left between ranks. The following modes are available:
```
FixedStartPosition // Leaves a fixed amount of spaces after the first input
FixedEndPosition // Leaves a fixed amount of spaces before the second input
DynamicMidPosition // Leaves the same space before and after the result
```
To create a custom one implement Position.