2017-05-30 57 views
1

我的輸入數據($ 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 [▶] 
] 

我用這個功能來重新排序數組的元素:

ksort($data,SORT_STRING); 

但函數的結果是一樣的:

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 [▶] 
] 

但我希望這ERD要在結果列表上刪除:

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 [▶] 
] 

我該怎麼做? 'Érd'應該在結果列表中上移。 乾杯

+4

https://stackoverflow.com/questions/832709/natural-sorting-algorithm-in-php-with-support -for-unicode – castis

+0

@gaalgergely請更新您的問題與格式化的PHP陣列 –

+0

@BunkerBoy我更新了問題。 – gaalgergely

回答

1

在我的情況是什麼工作對我來說正確的解決方案是這樣的:

setlocale(LC_COLLATE, 'hu_HU.utf8'); 
uksort($data,'strcoll');