我正在处理如下所示的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 CPAC]
[Dossier public]
[Débats Vote 2015]
[Délibérations de la Chambre des communes]
[Délibérations du Sénat]
)
问题陈述:
我想知道应该在上面的A行的php代码中进行哪些更改,以使带重音的字母看起来像没有重音一样,如下所示:
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 CPAC]
[Dossier public]
}
这是我尝试过的方法,但似乎无法正确排序/工作。
setlocale(LC_COLLATE, 'fr_CA.utf8');
asort($alpha_programs, SORT_LOCALE_STRING);
答案 0 :(得分:2)
setlocale
函数要求相应的语言环境在您的系统中可用。这取决于您的平台,但是在Linux系统上,您可以通过运行locale -a
来检查可用的语言环境。
您可以通过检查返回值来检查函数调用是否失败,因为它可以返回false
。
在这种情况下,您可以使用intl
扩展名中的Collator
:
$collator = Collator::create('fr_CA.utf8');
$collator->sort($alpha_programs);
Updated Demo和关联数组