Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> 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


--------------------
EnigmaCretu.Com >>
Go to the top of the page
+Quote Post
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. ?>


--------------------
"Who controls the past controls the future. Who controls the present controls the past. "
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%)
-----


no dobra czytaj czytaj bla bla... aż nabierzeż koloru. nie ma nikt czegoś gotowego? przecież po to jestem na forum żeby się informacjami wymieniać z ludzmi któży mają więcej doświadczenia. To nie ma być żadne pole do popisu dla wszystko wiedzących którzy może jeszcze na to czekają na "zapłać to dowiesz się". niestety ale w ten sposób odbieram ostatni thread.
Więc jeszcze raz moje pytanko dla wszystkich które z resztą zostało wyżej już zadane. DZIĘKI ZA TRUDY I POŚWIĘCONY CZAS.
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




że tak brzydko się zapytam: dawno nie sikałeś?

Spojrz na date tematu i nie nerwój sie nadaremne... smile.gif

zamykam by jeszcze ktos sie nie popisał

ps: jakby co to na PW proszę bo może czegoś nie załapałem

edit: otwieram by Barry mogl dopytac o reszte


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
BarryWhite
post
Post #5





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
nospor
post
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
co z tym strcoll? brak definicji? gdzie i jak?
Jeszcze sie wtrące na chwilke.
W drugim poscie napisano:
Cytat
poczytaj o strcoll i usort
Ciezko poczytac w manualu?
http://pl.php.net/manual/pl/function.strcoll.php

Krzyczysz na ludzi ze każa poczytać, ale nie wyobrazasz chyba sobie ze ci ludzie będą cytowac manuala tylko dlatego ze tobie sie tam niechce zajrzec?

Wiec nastepnym razem nie pisz:
Cytat
co z tym strcoll? brak definicji
a zajrzyj najpierw tam gdzie trzeba

To tyle wtrącania smile.gif


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
legorek
post
Post #7





Grupa: Zarejestrowani
Postów: 411
Pomógł: 35
Dołączył: 27.06.2004
Skąd: Kraków

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


Nie wiem czy autor potrzebuje jeszcze pomocy:
Dla wersji PHP 4.4 - 6.0
  1. <?php
  2. setlocale(LC_COLLATE, 'pl_PL');
  3. sort($array, SORT_LOCALE_STRING);
  4. ?>

Dla 6.0:
  1. <?php
  2. i18n_loc_set_default(LC_COLLATE, 'pl_PL');
  3. sort($array, SORT_LOCALE_STRING);
  4. ?>


--------------------
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 21.08.2025 - 16:55