lemurro / lib-sorter
PHP-библиотека Sorter - сортировка ассоциативного массива по определённому ключу
v1.0.0
2019-05-08 09:30 UTC
Requires
- php: >=7.0.0
This package is auto-updated.
Last update: 2024-11-08 20:58:01 UTC
README
Сортировка ассоциативного массива по определённому ключу
Установка
composer require lemurro/lib-sorter
Использование
$sorter->run(&$array, $key_name, $order_type, $save_keys = true);
- &$array
array
(Обязательно) - Массив с данными (передаётся по ссылке) - $key_name
string
(Обязательно) - Название ключа - $order_type
string
(Обязательно) - Тип сортировки ('asc'|'desc') - $save_keys
boolean
(Не обязательно) - Сохранить ключи (true|false), по умолчаниюtrue
Сортировка с сохранением ключей (по умолчанию)
use Lemurro\Lib\Sorter\Sorter; $sorter = new Sorter(); $array = [ 'z' => [ 'field1' => 'A', 'field2' => 'orange', ], 'x' => [ 'field1' => 'C', 'field2' => 'apple', ], 'c' => [ 'field1' => 'B', 'field2' => 'peach', ], ]; $sorter->run($array, 'field1', 'asc'); var_dump($array); /* [ 'z' => [ 'field1' => 'A' 'field2' => 'orange' ] 'c' => [ 'field1' => 'B' 'field2' => 'peach' ] 'x' => [ 'field1' => 'C' 'field2' => 'apple' ] ] */
use Lemurro\Lib\Sorter\Sorter; $sorter = new Sorter(); $array = [ 'z' => [ 'field1' => 'A', 'field2' => 'orange', ], 'x' => [ 'field1' => 'C', 'field2' => 'apple', ], 'c' => [ 'field1' => 'B', 'field2' => 'peach', ], ]; $sorter->run($array, 'field2', 'desc'); var_dump($array); /* [ 'x' => [ 'field1' => 'C' 'field2' => 'apple' ] 'c' => [ 'field1' => 'B' 'field2' => 'peach' ] 'z' => [ 'field1' => 'A' 'field2' => 'orange' ] ] */
Сортировка без сохранения ключей
use Lemurro\Lib\Sorter\Sorter; $sorter = new Sorter(); $array = [ 'z' => [ 'field1' => 'A', 'field2' => 'orange', ], 'x' => [ 'field1' => 'C', 'field2' => 'apple', ], 'c' => [ 'field1' => 'B', 'field2' => 'peach', ], ]; $sorter->run($array, 'field1', 'asc', false); var_dump($array); /* [ 0 => [ 'field1' => 'A' 'field2' => 'orange' ] 1 => [ 'field1' => 'B' 'field2' => 'peach' ] 2 => [ 'field1' => 'C' 'field2' => 'apple' ] ] */