Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Sortowanie tablic a polskie znaki., Kłopot z sortowaniem...
*_ENIGMA
post
Post #1





Grupa: Zarejestrowani
Postów: 30
Pomógł: 0
Dołączył: 1.11.2004
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Witajcie!

Mam taką tablicę (niektóre nazwy są celowo błędne aby sprawdzić skrypt; poniższe zapisy są wynikiem print_r() ):

Cytat
Array ( [0] => Wrocław [1] => Warszawa [2] => Chełm [3] => Ćmiekowo [4] => Gryfów [5] => Gdynia [6] => Gdąsk [7] => Wrocław [8] => Wrocław )


po zastosowaniu funckji sort() dostaję taki wynik:

Cytat
Array ( [0] => Chełm [1] => Gdynia [2] => Gdąsk [3] => Gryfów [4] => Warszawa [5] => Wrocław [6] => Wrocław [7] => Wrocław [8] => Ćmiekowo )


...

(zobaczcie na kolejność - część jest alfabetycznie, ale znów Ćmiekowo jest na końcu, a Gdąsk jest za Gdynia zamiast przed. Wygląda tak jakby najpierw szła kolejność według alfabetu angielskiego, a potem reszta znaków polskich).


Dlaczego nie sortuje mi według alfabetu polskiego?? Jak to zrobić??
Dodam, że kodowanie dokumentu mam ustawione na ISO-8859-2.
Używałem praktycznie wszystkich funkcji sortujących i nic z tego...

Proszę o pomoc, bo to dla mnie pilne :-(

Z poadrowieniami!

Ten post edytował *_ENIGMA 28.07.2005, 22:31:23
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Tajny
post
Post #2





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 28.07.2005
Skąd: 64-100 Leszno

Ostrzeżenie: (0%)
-----


poczytaj o strcoll i usort

  1. <?php
  2.  
  3. // ustaw na kodowanie ISO-8859-2
  4. setlocale(LC_ALL, 'Polish_Poland.28592');
  5. usort($tablica_do_posortowania, 'strcoll');
  6.  
  7. ?>
Go to the top of the page
+Quote Post
BarryWhite
post
Post #3





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 25.05.2007

Ostrzeżenie: (0%)
-----


Cytat(Tajny @ 29.07.2005, 00:40:52 ) *
poczytaj o strcoll i usort

  1. <?php
  2.  
  3. // ustaw na kodowanie ISO-8859-2
  4. setlocale(LC_ALL, 'Polish_Poland.28592');
  5. usort($tablica_do_posortowania, 'strcoll');
  6.  
  7. ?>



więc mam jak powyżej i nadal nie funkcjonuje. kodowanie na iso 8859.2 ustawione. kod u mnie wygląda następująco:
setlocale(LC_ALL, 'Polish_Poland.28592');
usort($p_polish_towns,'strcoll');
foreach($p_polish_towns AS $towns)
{
echo "<option>$towns\n";
}

co z tym strcoll? brak definicji? gdzie i jak?
sortowanie funkcjonuje z literami podstawowymi a nie z polskimi. ł, ą, ć ... podaje za Z. ma może ktoś jakieś rozwiązanie? Dzięki.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 8.10.2025 - 00:06