laravel 数组元素按中文排序

1、按英文排序

copy$r = [
    ['color'=>'b', 'color_zh'=>'波'],
    ['color'=>'c', 'color_zh'=>'吃'],
    ['color'=>'a', 'color_zh'=>'啊'],
    ['color'=>'d', 'color_zh'=>'得'],
];
//按英文排序
$rs = collect($r)->sortBy('color')
    ->values()
    ->all();

2、按中文排序

copy//按中文排序
$collator = new Collator('zh');
$rs = collect($r)
    ->sortBy(function ($item, $key) use ($collator) {
        return $collator->getSortKey($item['color_zh']);
    })
    ->values()
    ->all();

3、输出结果

array:4 [
0 => array:2 [
"color" => "a"
"color_zh" => "啊"
]
1 => array:2 [
"color" => "b"
"color_zh" => "波"
]
2 => array:2 [
"color" => "c"
"color_zh" => "吃"
]
3 => array:2 [
"color" => "d"
"color_zh" => "得"
]
]

posted @   pine007  阅读(38)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示

目录导航