【发布时间】:2010-10-24 09:07:04
【问题描述】:
是否可以使用自然顺序算法在 PHP 中使用 Unicode / UTF-8 字符对数组进行排序?例如(这个数组中的顺序是正确排序的):
$array = array
(
0 => 'Agile',
1 => 'Ágile',
2 => 'Àgile',
3 => 'Âgile',
4 => 'Ägile',
5 => 'Ãgile',
6 => 'Test',
);
如果我尝试使用 asort($array) 我会得到以下结果:
Array
(
[0] => Agile
[6] => Test
[2] => Àgile
[1] => Ágile
[3] => Âgile
[5] => Ãgile
[4] => Ägile
)
并使用 natsort($array):
Array
(
[2] => Àgile
[1] => Ágile
[3] => Âgile
[5] => Ãgile
[4] => Ägile
[0] => Agile
[6] => Test
)
如何在 PHP 5 下实现返回正确结果顺序(0、1、2、3、4、5、6)的函数?我的系统上提供了所有多字节字符串函数(mbstring、iconv、...)。
编辑:我想 natsort() 值,而不是键 - 我明确定义键(并使用 asort() 而不是 sort())的唯一原因是为了简化找出 unicode 值排序出错的地方。
【问题讨论】:
标签: php arrays sorting unicode utf-8