Reputation: 113
My input data ($data):
array:45 [▼
"Ajka" => array:5 [▶]
"Budapest XX-XXI. kerület" => array:5 [▶]
"Békéscsaba" => array:5 [▶]
"Debrecen" => array:5 [▶]
"Dunaújváros - Szászhalombatta" => array:4 [▶]
"Győr" => array:5 [▶]
"Hatvan" => array:5 [▶]
"Kaposvár" => array:5 [▶]
"Kiskunhalas" => array:5 [▶]
"Miskolc - Tiszaújváros" => array:5 [▶]
"Nagykanizsa" => array:5 [▶]
"Nyíregyháza" => array:5 [▶]
"Pécs - Komló" => array:4 [▶]
"Székesfehérvár" => array:5 [▶]
"Tatabánya" => array:5 [▶]
"Tököl" => array:2 [▶]
"Vecsés, Gyál" => array:3 [▶]
"Veszprém" => array:5 [▶]
"Várpalota" => array:3 [▶]
"Zalaegerszeg" => array:4 [▶]
"Érd" => array:2 [▶]
]
I use this function to reorder the elements of the array:
ksort($data,SORT_STRING);
But the result of the function is the same:
array:45 [▼
"Ajka" => array:5 [▶]
"Budapest XX-XXI. kerület" => array:5 [▶]
"Békéscsaba" => array:5 [▶]
"Debrecen" => array:5 [▶]
"Dunaújváros - Szászhalombatta" => array:4 [▶]
"Győr" => array:5 [▶]
"Hatvan" => array:5 [▶]
"Kaposvár" => array:5 [▶]
"Kiskunhalas" => array:5 [▶]
"Miskolc - Tiszaújváros" => array:5 [▶]
"Nagykanizsa" => array:5 [▶]
"Nyíregyháza" => array:5 [▶]
"Pécs - Komló" => array:4 [▶]
"Székesfehérvár" => array:5 [▶]
"Tatabánya" => array:5 [▶]
"Tököl" => array:2 [▶]
"Vecsés, Gyál" => array:3 [▶]
"Veszprém" => array:5 [▶]
"Várpalota" => array:3 [▶]
"Zalaegerszeg" => array:4 [▶]
"Érd" => array:2 [▶]
]
But I expect this to Érd to be removed upper in the result list:
array:45 [▼
"Ajka" => array:5 [▶]
"Budapest XX-XXI. kerület" => array:5 [▶]
"Békéscsaba" => array:5 [▶]
"Debrecen" => array:5 [▶]
"Dunaújváros - Szászhalombatta" => array:4 [▶]
"Érd" => array:2 [▶]
"Győr" => array:5 [▶]
"Hatvan" => array:5 [▶]
"Kaposvár" => array:5 [▶]
"Kiskunhalas" => array:5 [▶]
"Miskolc - Tiszaújváros" => array:5 [▶]
"Nagykanizsa" => array:5 [▶]
"Nyíregyháza" => array:5 [▶]
"Pécs - Komló" => array:4 [▶]
"Székesfehérvár" => array:5 [▶]
"Tatabánya" => array:5 [▶]
"Tököl" => array:2 [▶]
"Vecsés, Gyál" => array:3 [▶]
"Veszprém" => array:5 [▶]
"Várpalota" => array:3 [▶]
"Zalaegerszeg" => array:4 [▶]
]
What do I do wrong? 'Érd' should be moved upper in the result list. Cheers
Upvotes: 1
Views: 262
Reputation: 113
In my case the right solution what worked for me is this:
setlocale(LC_COLLATE, 'hu_HU.utf8');
uksort($data,'strcoll');
Upvotes: 1