如何对重音字母进行排序,因为它们在 php 中没有重音?
How to sort accented letters as they are unaccented in php?
我正在编写如下所示的 php 代码,它会回显 returns 下面的数组。
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]
)
问题陈述:
我想知道我应该在上面 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]
[Dossier public]
}
这是我尝试过的方法,但似乎 sort/work 不正确。
setlocale(LC_COLLATE, 'fr_CA.utf8');
asort($alpha_programs, SORT_LOCALE_STRING);
setlocale
函数需要相应的区域设置在您的系统中可用。这取决于您的平台,但在 linux 系统上,您可以通过 运行 locale -a
.
检查可用的语言环境
您可以通过检查 return 值来检查函数调用是否失败,因为它可以 return false
.
如果是这种情况,您可以改用 intl
扩展名中的 Collator
:
$collator = Collator::create('fr_CA.utf8');
$collator->sort($alpha_programs);
Updated Demo 与关联数组
我正在编写如下所示的 php 代码,它会回显 returns 下面的数组。
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]
)
问题陈述:
我想知道我应该在上面 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]
[Dossier public]
}
这是我尝试过的方法,但似乎 sort/work 不正确。
setlocale(LC_COLLATE, 'fr_CA.utf8');
asort($alpha_programs, SORT_LOCALE_STRING);
setlocale
函数需要相应的区域设置在您的系统中可用。这取决于您的平台,但在 linux 系统上,您可以通过 运行 locale -a
.
您可以通过检查 return 值来检查函数调用是否失败,因为它可以 return false
.
如果是这种情况,您可以改用 intl
扩展名中的 Collator
:
$collator = Collator::create('fr_CA.utf8');
$collator->sort($alpha_programs);
Updated Demo 与关联数组