包含法语和英语字符串的排序数组


Sorting array that contains strings in both french and english

我遇到的问题是,当我对字符串数组调用sort()时,它会按字母顺序对其进行微调,法语字符串除外。

它会这样排序:

Atlantic Inc.
Bait Inc.
Zack's Fish Mart
Émile Fisheries Inc.

如何对两种语言进行适当排序?

排序规则高度依赖于区域设置。您可以使用SORT_locale_STRING标志强制设置区域设置:

setlocale("LC_ALL", "fr_FR.utf8"); 
sort($arraytobesorted, SORT_LOCALE_STRING);

http://php.net/manual/en/function.sort.php

这是正确排序的。'"É"位于默认语言环境中的"Z"之后。

要更改此行为,请将sort()的第二个参数设置为"SORT_LOCALE_STRING",并将系统的区域设置更改为支持所需排序的区域设置。