tsoffereins / number-sorter
A PHP library that helps you sort your numbers alphabetically.
Requires
- php: >=5.6
- kwn/number-to-words: ^1.6
Requires (Dev)
- phpspec/prophecy: ~1.0
- phpunit/phpunit: ^5.0
This package is auto-updated.
Last update: 2024-10-07 05:51:57 UTC
README
With this library you can finally sort your list of numbers the way you always wanted: alphabetically.
Installation
You can install the NumberSorter through composer:
composer require tsoffereins/number-sorter
This library requires PHP 5.6 or higher in order to work.
Usage
Sorting a list of number alphabetically is easy as 1 3 2:
$sorter = new \NumberSorter\NumberSorter(); $input = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; $output = $sorter->sort($input); var_dump($output); // [8, 5, 4, 9, 1, 7, 6, 10, 3, 2]
Numeric list
The input list must be an array of only numeric values. This includes any value that would make is_numeric()
return true. See php.net for more on that.
If you pass a non numeric value a TypeError
will be thrown.
Language
By default numbers are sorted alphabetically in English, but if you'd like to sort in another language you can pass it to the constructor:
$sorter = new \NumberSorter\NumberSorter('nl'); $input = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; $output = $sorter->sort($input); var_dump($output); // [8, 3, 1, 9, 10, 2, 4, 5, 6, 7]
The NumberSorter library relies on the package kwn/number-to-words
for translating numbers into words. Take a look at
their documentation for the available locales.
Immutability
Passing an array by reference and sorting its contents, like PHP's sort()
function does, might have been OK in the
nineties, but proper code should limit side effects. Therefore, the NumberSorter does not alter the input array but
returns a new array with the same numbers sorted alphabetically.
Support
Are you kidding me?!