|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
[2005-03-07 14:00 UTC] php-france at mattoug dot net
Description:
------------
Accented characters are not properly sorted. For example, the right sorting of "?" is between "a" and "b", for "?" it's between "e" and "f", and so on...
Reproduce code:
---------------
$table = array("AB" => "Alberta",
"BC" => "Colombie-Britannique",
"MB" => "Manitoba",
"NB" => "Nouveau-Brunswick",
"NL" => "Terre-Neuve-et-Labrador",
"NS" => "Nouvelle-?cosse",
"ON" => "Ontario",
"PE" => "?le-du-Prince-?douard",
"QC" => "Qu?bec",
"SK" => "Saskatchewan",
"NT" => "Territoires du Nord-Ouest",
"NU" => "Nunavut",
"YT" => "Territoire du Yukon");
asort($table);
Expected result:
----------------
array(13) { ["AB"]=> string(7) "Alberta" ["BC"]=> string(20) "Colombie-Britannique" ["PE"]=> string(21) "?le-du-Prince-?douard" ["MB"]=> string(8) "Manitoba" ["NB"]=> string(17) "Nouveau-Brunswick" ["NS"]=> string(15) "Nouvelle-?cosse" ["NU"]=> string(7) "Nunavut" ["ON"]=> string(7) "Ontario" ["QC"]=> string(6) "Qu?bec" ["SK"]=> string(12) "Saskatchewan" ["NL"]=> string(23) "Terre-Neuve-et-Labrador" ["YT"]=> string(19) "Territoire du Yukon" ["NT"]=> string(25) "Territoires du Nord-Ouest"}
Actual result:
--------------
array(13) { ["AB"]=> string(7) "Alberta" ["BC"]=> string(20) "Colombie-Britannique" ["MB"]=> string(8) "Manitoba" ["NB"]=> string(17) "Nouveau-Brunswick" ["NS"]=> string(15) "Nouvelle-?cosse" ["NU"]=> string(7) "Nunavut" ["ON"]=> string(7) "Ontario" ["QC"]=> string(6) "Qu?bec" ["SK"]=> string(12) "Saskatchewan" ["NL"]=> string(23) "Terre-Neuve-et-Labrador" ["YT"]=> string(19) "Territoire du Yukon" ["NT"]=> string(25) "Territoires du Nord-Ouest" ["PE"]=> string(21) "?le-du-Prince-?douard" }
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
|
|||||||||||||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Sun Nov 02 10:00:02 2025 UTC |
No bug here, the functions don't understand locales unless you add as second "sort-flag" parameter SORT_LOCALE_STRING to asort(). This option is introduced in PHP 5.0.2. The following works fine (if you have the fr_FR locale installed): <?php setlocale(LC_ALL, 'fr_FR'); $table = array("AB" => "Alberta", "BC" => "Colombie-Britannique", "MB" => "Manitoba", "NB" => "Nouveau-Brunswick", "NL" => "Terre-Neuve-et-Labrador", "NS" => "Nouvelle-?cosse", "ON" => "Ontario", "PE" => "?le-du-Prince-?douard", "QC" => "Qu?bec", "SK" => "Saskatchewan", "NT" => "Territoires du Nord-Ouest", "NU" => "Nunavut", "YT" => "Territoire du Yukon"); asort($table, SORT_LOCALE_STRING); var_dump($table);