dimaskao / sorter
这个库可以排序数组。
v2.0.1
2020-08-24 11:49 UTC
Requires
- php: >=7.4
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.16
- phpunit/phpunit: ^9.0
This package is auto-updated.
Last update: 2024-09-24 20:41:40 UTC
README
这个库可以使用数字和字母对数组进行排序。
目录
安装
您可以使用composer来安装此扩展。
只需运行
$ composer require dimaskao/sorter
如何使用
通用
首先包含此库类
require_once __DIR__ . '/XXXXX/vendor/autoload.php'; use Dimaskao\Sorter\Sorter //required class use Dimaskao\Sorter\NullSorter; //|\ use Dimaskao\Sorter\SortASC; //|- Choose what you need use Dimaskao\Sorter\SortDESC; //|/
其中 XXXXX
是库根目录的路径。
如果您想排序数组,创建 Sorter
对象并传递 SortASC
或 SortDESC
对象。
$sorter = new Sorter(new SortASC());
然后使用 ->sort()
方法并传入一个数组。此方法将返回一个排序后的数组。
$sorter->sort($array);
此库使用策略模式,因此您可以通过 -setSorter()
改变排序方法。只需传递一个新的排序对象即可。
$sorter = new Sorter(new SortDESC()); $sorter->setSorter(new SortASC());
NullSorter
对于调试,您可以使用 NullSorter()
。
$sorter->setSorter(new SortASC());//this will sort array $sorter->setSorter(new NullSorter());//this would not sort array $b = $sorter->sort($arr);
库扩展
如果您想添加新的排序格式,您应该创建一个实现 SorterInterface.php
的自己的类。
require_once __DIR__ . '/vendor/autoload.php'; use Dimaskao\Sorter\SorterInterface; class YourFormat implements SorterInterface { }
示例
让我们看看它是如何工作的。
require_once __DIR__ . 'vendor/autoload.php'; use Dimaskao\Sorter\NullSorter; use Dimaskao\Sorter\SortASC; use Dimaskao\Sorter\SortDESC; use Dimaskao\Sorter\Sorter; $arr = [9, 0, 1, 5, 77, -5]; $sorter = new Sorter(new SortDESC()); $a = $sorter->sort($arr); \print_r($a); $sorter->setSorter(new SortASC()); $b = $sorter->sort($arr); \print_r($b); $sorter->setSorter(new SortASC()); $sorter->setSorter(new NullSorter()); $b = $sorter->sort($arr); \print_r($b);
结果如下。
Array ( [4] => 77 [0] => 9 [3] => 5 [2] => 1 [1] => 0 [5] => -5 ) Array ( [5] => -5 [1] => 0 [2] => 1 [3] => 5 [0] => 9 [4] => 77 ) Array ( [0] => 9 [1] => 0 [2] => 1 [3] => 5 [4] => 77 [5] => -5 )