dragon-code/size-sorter

轻松排序衣物尺码、身高、内衣尺码、家具尺寸等

1.5.0 2024-03-12 21:42 UTC

This package is auto-updated.

Last update: 2024-09-03 10:59:29 UTC


README

The Dragon Code Product size sorting

Stable Version Unstable Version Total Downloads Github Workflow Status License

轻松排序衣物尺码、身高、内衣尺码、家具尺寸等

安装

要获取最新版本的产品尺码排序器,只需使用Composer引入项目。

composer require dragon-code/size-sorter

或者手动更新composer.json文件中的require块并运行composer update。

{
    "require": {
        "dragon-code/size-sorter": "^1.0"
    }
}

兼容性

注意

此包可以在框架系统外运行。

用法

在调用带有常用值的排序时,每个元素将被分配到以下五个组之一

  1. 字母衣物尺码(XXS、XS、M、L等)
  2. 衣物和鞋子的数字尺码(9、10、44-46、48等)
  3. 内衣尺码(70B、75A、80C等...)
  4. 物品的整体尺寸(40x38x19 sm等)
  5. 其他值
use DragonCode\SizeSorter\Sorter;

return Sorter::sort(collect([
    'XXL',
    '26',
    '28',
    'XL',
    'ONE SIZE',
    'XXS',
    '2',
    '54',
]));

/*
 * Returns:
 * 
 * Collection([
 *   'XXS',
 *   'XL',
 *   'XXL',
 *   '2',
 *   '26',
 *   '28',
 *   '54',
 *   'ONE SIZE',
 * ])
 */
use DragonCode\SizeSorter\Sorter;

$items = Size::query()->get();

return Sorter::sort($items, 'title');

您可以在测试文件中查看更多示例。

组顺序

默认情况下,尺码按照以下逻辑块进行排序

  1. 字母衣物尺码(XXS、XS、M、L等)
  2. 衣物和鞋子的数字尺码(9、10、44-46、48等)
  3. 内衣尺码(70B、75A、80C等...)
  4. 物品的整体尺寸(40x38x19 sm等)
  5. 其他值

但是您可以通过指定标识符作为第三个参数来更改顺序

use DragonCode\SizeSorter\Enum\Group;
use DragonCode\SizeSorter\Sorter;

return Sorter::sort($items, groupsOrder: [3, 5, 4, 2, 1]);
// or
return Sorter::sort($items, groupsOrder: [Group::GROUP_3, Group::GROUP_5, Group::GROUP_4, Group::GROUP_2, Group::GROUP_1]);

最终数组将按照指定的顺序形成

3 - 5 - 4 - 2 - 1

您还可以指定一些组。例如

use DragonCode\SizeSorter\Enum\Group;
use DragonCode\SizeSorter\Sorter;

return Sorter::sort($items, groupsOrder: [3, 5]);
// or
return Sorter::sort($items, groupsOrder: [Group::GROUP_3, Group::GROUP_5]);

在这种情况下,前两个逻辑组将按照指定的顺序排序,后续的将按升序排序

3 - 5 - 1 - 2 - 4

许可证

此包受MIT许可证许可。