相关疑难解决方法(0)

如何对UTF-8字符串数组进行排序?

我currentyl对如何在PHP中对包含UTF-8编码字符串的数组进行排序没有任何线索.该阵列来自LDAP服务器,因此通过数据库排序(没有问题)是没有解决方案.以下不适用于我的Windows开发机器(虽然我认为这至少应该是一个可能的解决方案):

$array=array('Birnen', 'Äpfel', 'Ungetüme', 'Apfel', 'Ungetiere', 'Österreich');
$oldLocal=setlocale(LC_COLLATE, "0");
var_dump(setlocale(LC_COLLATE, 'German_Germany.65001'));
usort($array, 'strcoll');
var_dump(setlocale(LC_COLLATE, $oldLocal));
var_dump($array);
Run Code Online (Sandbox Code Playgroud)

输出是:

string(20) "German_Germany.65001"
string(1) "C"
array(6) {
  [0]=>
  string(6) "Birnen"
  [1]=>
  string(9) "Ungetiere"
  [2]=>
  string(6) "Äpfel"
  [3]=>
  string(5) "Apfel"
  [4]=>
  string(9) "Ungetüme"
  [5]=>
  string(11) "Österreich"
}
Run Code Online (Sandbox Code Playgroud)

这完全是胡说八道.使用1252作为代码页setlocale()给出了另一个输出,但仍然是一个明显错误的输出:

string(19) "German_Germany.1252"
string(1) "C"
array(6) {
  [0]=>
  string(11) "Österreich"
  [1]=>
  string(6) "Äpfel"
  [2]=>
  string(5) "Apfel"
  [3]=>
  string(6) "Birnen"
  [4]=>
  string(9) "Ungetüme"
  [5]=>
  string(9) "Ungetiere"
}
Run Code Online (Sandbox Code Playgroud)

有没有办法用UTF-8字符串区域设置识别数组?

刚才注意到这似乎是PHP上的问题,因为de_DE.utf8用作locale 的相同代码段可以在Linux机器上运行.不过,这个特定于Windows的问题的解决方案会很好......

php arrays sorting utf-8

26
推荐指数
3
解决办法
3万
查看次数

如何在PHP中对UTF-8字符串数组进行排序?

需要帮助按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或创建我自己的角色顺序?

php arrays sorting utf-8

18
推荐指数
4
解决办法
2万
查看次数

标签 统计

arrays ×2

php ×2

sorting ×2

utf-8 ×2