ksort($数据,SORT_STRING);不起作用

时间:2017-05-30 12:07:39

标签: php arrays sorting

我的输入数据($ 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 [▶]
]

但我希望在结果列表中将Érd删除为高位:

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'应该在结果列表中向上移动。 干杯

1 个答案:

答案 0 :(得分:1)

就我而言,正确的解决方案对我有用:

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