【发布时间】:2016-12-03 13:35:43
【问题描述】:
我正在尝试使用 array_multisort 按可以包含重音字符(捷克语)的字符串对数组中的项目进行排序。
我发现了一些关于使用带有 SORT_LOCALE_STRING 标志的 setlocale 和 array_multisort 的提示,但它不起作用。
有没有机会获得带有 SORT_LOCALE_STRING 标志的 array_multisort 的工作示例?
这是我的代码 sn-p:
$oldLocale = setlocale( LC_ALL, "0" );
setlocale( LC_ALL, 'cs_CZ.utf8' );
array_multisort( $accented_string, SORT_ASC, SORT_LOCALE_STRING, $my_array );
setlocale( LC_ALL, $oldLocale );`
这是一个例子:
我有一个多维数组,我按捷克城市的名称对其进行排序。
一些捷克城市是: Praha、Beroun、Plzeň、České Budějovice、Liberec。如果我只是通过普通的 array_multidimensional 排序来排序,结果是: 贝龙、利贝雷茨、比尔森、布拉格、捷克布杰约维采。
我需要到达这里: Beroun, České Budějovice (Č=>C), Liberec, Plzeň, Praha。而且我必须使用array_multidimensional。
【问题讨论】:
-
在您的代码中添加一些字符串,并在排序后提供预期的结果。你假设这里的所有人都懂捷克语,这是错误的。但是,如果您提供示例(以及您的期望),即使不懂捷克语,也有人可以提供帮助。
-
嗯,这不是捷克语,而是重音字符。好的,这是一个例子:我有一个多维数组,我按捷克城市的名称对其进行排序。一些捷克城市是:布拉格、贝龙、比尔森、捷克布杰约维采、利贝雷茨。如果我仅通过简单的 array_multidimensional 排序对其进行排序,结果是:Beroun、Liberec、Plzeň、Praha、České Budějovice。我需要到达这里:Beroun、České Budějovice (Č=>C)、Liberec、Plzeň、Praha。而且我必须使用array_multidimensional。
-
没有这个例子就很难提供帮助。添加值,添加您期望的输出
-
我编辑了我之前的评论。
-
不要将此添加为评论,更新您的原始问题(下次您应该提及用户(使用评论中的@),否则没有通知
标签: php