Magyar névsor PHP alatt

Üdv

Egy kis problémám akadt PHP-vel.
Gondolom már sokakkal előfordult hogy szerettek volna egy PHP tömböt kilistázni a magyar helyesírásnak megfelelő betűrendben. Én is így vagyok és keresem a megoldást.

A probléma:
Adott egy tömb:
ács, adam, őrzi, ökör, őcsát, okkal, óbba

mindenféle sort, ksort, natsort, stb.. (header, setlocale beállítás) után sem lesz ez a listázási sorrend:
ács, adam, óbba, okkal, őcsát, ökör, őrzi

tehát a=á, e=é, o=ó, ö=ő (de o<>ö), u=ú, ü=ű (de u<>ü), valamint g<>gy, s<>sz, t<>ty stb... (habár most a dupla betűk (pl.sz, gy) nem érdekesek, csak az ékezetesek)

Minden uft-8-ra van beállítva.

Ha van valakinek erre egy jól bejáratott és gyors, egyszerű, lehetőleg minél kevesebb rongálással járó rutinja kérem ossza meg.
Köszi a segítséget.

Hozzászólások

próbáld meg ékezetmentesítve rendezni... :$

Sajna nem lehet mert az u-hoz nem lehet belevenni az ü, ű betűs elemeket. Az o-hoz pedig az ö, ő-ket.
Tehát a lényeg hogy a hosszú ékezetes betűk keveredjenek a rövid ékezetes megfelelőikkel (pl.: az ö betűsek közé keveredjenek az ő betűsek).

+ probléma hogy pl. octa nem lehet azonos az ócta-val hanem utána következik.
:(

http://hu2.php.net/sort
masodik parameternek SORT_LOCALE_STRING, elotte meg allitsd a setlocale fuggvennyel hu_HU vagy hu_HU.UTF-8 -ra a localt, persze ehhez telepitve kell, hogy legyen az adott locale a gepen.
de irhatsz sajat rendezo rutint is. :/

Tyrael

Csak elmélet, és az is lehet, hogy gány.
Csinálj egy tömböt, ahol sorba állítod a magyar ABC betűit és értéket rendelsz hozzá.
a=1, á=2, b=3 ....
Majd vizsgálod a szavak első karakterét, így össze tudod hasonlítani, ha azok egyeznek, a következő karaktert és így tovább..

Csak kiváncsiság, ez a tömb nem SQL-ből érkezik véletlenül?

masik megoldas: uasort/uksort + sajat fuggveny egy egyszeru tombbel.

t