是否可以使用自然顺序算法在PHP中使用Unicode/UTF-8字符对数组进行排序?例如(此数组中的顺序正确排序):
$array = array
(
0 => 'Agile',
1 => 'Ágile',
2 => 'Àgile',
3 => 'Âgile',
4 => 'Ägile',
5 => 'Ãgile',
6 => 'Test',
);
Run Code Online (Sandbox Code Playgroud)
如果我尝试使用asort($ array),我会得到以下结果:
Array
(
[0] => Agile
[6] => Test
[2] => Àgile
[1] => Ágile
[3] => Âgile
[5] => Ãgile
[4] => Ägile
)
Run Code Online (Sandbox Code Playgroud)
并使用natsort($ array):
Array
(
[2] => Àgile
[1] => Ágile
[3] => Âgile
[5] => Ãgile
[4] => Ägile
[0] => Agile
[6] => Test
)
Run Code Online (Sandbox Code Playgroud)
如何在PHP …
需要帮助按utf-8排序单词.例如,我们有5个比利时城市.
$array = array('Borgloon','Thuin','Lennik','Éghezée','Aubel');
sort($array); // Expected: Aubel, Borgloon, Éghezée, Lennik, Thuin
// Actual: Aubel, Borgloon, Lennik, Thuin, Éghezée
Run Code Online (Sandbox Code Playgroud)
城市Éghezée应该是第三名.是否可以使用/设置某种utf-8或创建我自己的角色顺序?
我正在寻找一个方法或转换表,知道如何将变音符号和特殊字符转换为ascii中最可能的表示形式.
例:
Ärger = aerger
Bôhme = bohme
Søren = soeren
pjérà = pjera
Run Code Online (Sandbox Code Playgroud)
有人有什么想法?
更新:除了良好的接受答案,我还发现PECLs Normalizer非常有趣,虽然我不能使用它,因为服务器没有它并且没有为我更改.
如果此处的答案对您没有帮助,请查看此问题.
php ascii diacritics special-characters non-ascii-characters
我用这个按照姓氏排序:
usort($fb_friends['data'], "custom_sort");
function custom_sort($a,$b) {
return $a['last_name']>$b['last_name'];
}
foreach($fb_friends['data'] as $friend) {
echo '<br>';
echo $friend['name'];
}
Run Code Online (Sandbox Code Playgroud)
但是 - 当姓氏是重音时,例如Šiko,Áron等,这些名字就在最后.我怎样才能正确排序?