You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP含特殊字符的数组按键排序方案求助

对带斯洛文尼亚语特殊字符的PHP关联数组按键排序

嘿,我懂你找靠谱解决方案的心情——带č、š这类特殊字符的本地化排序确实容易掉坑!你已经正确设置了斯洛文尼亚语的区域,接下来只需要用适配本地化规则的排序方法就行:

普通的ksort()函数默认按ASCII值排序,没法识别斯洛文尼亚语的字母顺序,所以咱们得用uksort()配合strcoll()函数来实现自定义的本地化按键排序,具体代码如下:

setlocale(LC_ALL, 'sl_SI.utf8');
$a = [ 
    'č' => [...], 
    'a' => [...], 
    'š' => [...], 
    'u' => [...] 
];

// 基于当前区域规则对数组按键排序
uksort($a, function($key1, $key2) {
    return strcoll($key1, $key2);
});

关键说明:

  • strcoll()函数会严格遵循你之前设置的sl_SI.utf8区域规则来比较字符串,所以č、š这些字符会按照斯洛文尼亚语的自然字母顺序排列(比如最终顺序会是a → č → š → u)。
  • 如果你的setlocale()调用返回false,说明服务器上没安装斯洛文尼亚语的区域包,需要先安装:
    • Debian/Ubuntu系统:运行sudo locale-gen sl_SI.utf8
    • CentOS/RHEL系统:运行sudo localedef -i sl_SI -f UTF-8 sl_SI.utf8

内容的提问来源于stack exchange,提问作者Tim

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 06:53:23