【问题标题】:PHP natsort() with accented lettersPHP natsort() 带重音字母
【发布时间】:2016-08-19 09:22:28
【问题描述】:

我正在尝试像这样对数组进行排序

['České Budějovice',
 'Cidlina',
 'Praha 1',
 'Praha 10',
 'Praha 4']

以自然的方式。结果应该是

['Cidlina',
 'České Budějovice',
 'Praha 1',
 'Praha 4',
 'Praha 10']

natsort() 函数本身以自然的方式进行了出色的排序(即,将“Praha 10”放在“Praha 4”之后),但它会将以重音字母开头的单词放在末尾。

有没有一种方法可以在尊重语言环境的同时自然排序?

【问题讨论】:

  • 您可以尝试使用带有SORT_LOCALE_STRING 和SORT_NATURAL 标志的sort(),而不是natsort(),以及适当的区域设置(cs_CS)
  • 很遗憾,Collat​​or 无法进行自然排序,并且 sort() 不适用于 SORT_LOCALE_STRING sandbox.onlinephpfunctions.com/code/…

标签: php sorting locale natsort


【解决方案1】:

你不能使用natsort。

在project page 你会发现这个:

字符的比较纯粹是数字,不考虑字符集或语言环境。所以它只对 ASCII 正确。

【讨论】:

  • 我认为你是对的。经过研究,我认为除了创建自己的比较函数之外没有简单的方法。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多