【问题标题】:PHP array_multisort accented charactersPHP array_multisort 重音字符
【发布时间】: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


【解决方案1】:

尝试使用:

setlocale(LC_TIME, 'cs_CZ.utf8', 'czech');

【讨论】:

    猜你喜欢
    • 2011-03-23
    • 1970-01-01
    • 1970-01-01
    • 2011-08-07
    • 2020-12-09
    • 2014-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多