Řazení options v SelectBoxu

Dave
Člen | 2
+
0
-

Ahoj,
mám pole:

$cities = [
	158 => "Ženeva",
	52 => "Zanzibar",
	200 => "Česká Lípa",
	33 => "Praha"
]

a klasický selectBox:
$form->addSelectBox->('cities', 'cities', $cities);

a potřebuji aby se tato města seřadili dle abecedy(s důrazem na ČJ). Tedy první město na výběr bude Česká Lípa pak Praha pak Zanzibar a pak Ženeva. Nevíte prosím jak na to?

Editoval Dave (31. 10. 2018 14:37)

iguana007
Člen | 970
+
+3
-
setlocale(LC_COLLATE, 'cs_CZ.utf8');
$cities = [
    158 => "Ženeva",
    52 => "Zanzibar",
    200 => "Česká Lípa",
    33 => "Praha"
];
uasort($cities, 'strcoll');
$form->addSelectBox->('cities', 'cities', $cities);
Šaman
Člen | 2635
+
+2
-

Jak píše Leguán, seřadit si to budeš muset ručně před předáním hodnot formuláři. Pokud se tedy bavíme o PHP řešení a ne o nějaké JS manipulaci, která je tady asi úplně zbytečná.

Dave
Člen | 2
+
0
-

Musel jsem nastavit

setlocale(LC_COLLATE, 'czech');

ale stejně mi to např. Š řadí mezi K a L… nechápu

h4kuna
Backer | 740
+
+3
-

Dave napsal(a):

Musel jsem nastavit

setlocale(LC_COLLATE, 'czech');

To co psal @iguana007 tak bude fungovat na linuxím servru pokud tam je nainstalovaný cs_CZ.utf8 jazykový balíček. A ty to zkoušíš na Windows, že? Obávám se že to lehce neodladíš a budeš muset si to vyzkoušet na servru.

Editoval h4kuna (1. 11. 2018 8:46)