awssat/numbered-string-order

根据包含的数字自然排序字符串数组。

1.0.9 2019-07-15 11:29 UTC

This package is not auto-updated.

Last update: 2024-09-17 04:04:36 UTC


README

Latest Version on Packagist StyleCI Build Status

根据包含的数字自然排序字符串数组。PHP内置的natsort函数的替代品,实际上可以工作。

安装

通过Composer

$ composer require awssat/numbered-string-order

用法

排序

//if you are using laravel, then instead use:
//$numberedStringOrder = app(Awssat\numberedStringOrder\numberedStringOrder::class);

$numberedStringOrder = new numberedStringOrder();

$numberedStringOrder->sort([
    'episode 5',
    'episode50',
    '499',
    'episode1',
    'episode two hundred',
    'episode one',
    'episode two',
    'episode eleven',
    'episode three'
]);
    

>> output: 
[
     "episode1",
     "episode one",
     "episode two",
     "episode three",
     "episode 5",
     "episode eleven",
     "episode50",
     "episode two hundred",
     499,
]
   

如果你想知道为什么不使用内置函数(natsort),那么请查看上面相同示例的natsort输出,以了解原因

 //output of built-in function natsor(): 🤨
 [
     "499",
     "episode1",
     "episode 5",
     "episode50",
     "episode eleven",
     "episode one",
     "episode three",
     "episode two",
     "episode two hundred",
   ]

获取数字

如果你想使用我们内部的数字提取方法

$numberedStringOrder->getNumbers(['2digits', 'text1', 'three3', 'two cars', 'blank']);

>> output:
[
     "2digits" => 2,
     "text1" => "1",
     "three3" => "3",
     "two cars" => 2,
     "blank" => "blank",
]

将单词转换为数字

如果你想要将数字单词转换为数字,这个包也可能很有帮助

new numberedStringOrder();
$numberedStringOrder->englishWordsToNumbers('one hundred twenty-three thousand four hundred fifty-six');
>> output: 123456

//to get arabic words to number use: arabicWordsToNumbers(...)

测试

composer test

目前,它支持英语和阿拉伯语。

许可

MIT许可(MIT)。有关更多信息,请参阅许可文件