我正在研究如下所示的 php 代码,该代码在 echo 上返回其下方的数组。
ksort( $alpha_programs ); // Line A
echo '<pre>'; print_r($alpha_programs); echo '</pre>'; // Line B
B 行显示以下数组:
Array
(
[Des Canadiens exceptionnels]
[Did You Know?]
[Documentaires]
[Dossier public]
[Débats Vote 2015]
[Délibérations de la Chambre des communes]
[Délibérations du Sénat]
)
问题陈述:
我想知道我应该在上面的 php 代码中对 A 行进行哪些更改,以便重音字母应该像没有重音一样排序,如下所示:
Array
(
[Débats Vote 2015]
[Délibérations de la Chambre des communes]
[Délibérations du Sénat]
[Des Canadiens exceptionnels]
[Did You Know?]
[Documentaires]
[Dossier public]
}
这是我尝试过的,但它似乎无法正常排序/工作。
setlocale(LC_COLLATE, 'fr_CA.utf8');
asort($alpha_programs, SORT_LOCALE_STRING);
setlocale
函数要求相应的语言环境在系统中可用。这因平台而异,但在 linux 系统上,您可以通过运行 locale -a
来检查可用的语言环境。
值来检查函数调用是否失败,因为它可以返回false
。
如果是这种情况,可以改用intl
扩展中的Collator
:
$collator = Collator::create('fr_CA.utf8');
$collator->sort($alpha_programs);
演示
使用关联数组更新了演示