![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 16 Pomógł: 1 Dołączył: 15.10.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Przy użyciu zwykłej funkcji sortowania tablic (array_multisort), kompilator posortował mi jej elementy alfabetycznie. Ja chciałbym nieco zmienić szyk tych elementów, tzn. tak jakby przenieść wcześniej w alfabecie niektóre znaki. Chciałbym, aby podkreślnik _ był przed literami (elementy nie zawierają polskich znaków). Chciałbym też, aby razem z daną tablicą sortowały się w ten sam sposób inne tablice, czyli wypadałoby zamieszać w to funkcję array_multisort. Aktualnie mam taki kod: Całość działałaby tak: powinna zostać posortowana tak: Kod al_ ala ali alo Znalazłem coś na ten temat na algorytmy.pl (sortowanie według własnego alfabetu), jednak strona jest płatna, a ja aktualnie nie mam tyle pieniędzy, żeby rozdawać je na prawo i lewo. Może wy coś poradzicie? Może funkcja uksort()? usort()? Proszę pamiętać, że równolegle powinny się sortować cztery tablice, zachowując wszędzie taką samą kolejność w stosunku do stanu początkowego (czyli: jeśli element 1 z pierwszej tablicy idzie na trzecie miejsce, to to samo się dzieje z elementami '1' w pozostałych tablicach). Ten post edytował QooBooS 1.03.2010, 22:51:41 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 952 Pomógł: 154 Dołączył: 20.01.2007 Skąd: /dev/oracle Ostrzeżenie: (0%) ![]() ![]() |
usort()
To sortuje jedną tablicę naraz, ale przecież możesz ją kilka razy wywołać. Ad. końcówki -> ech... sortowanie to jedne z podstawowych algorytmów, a algorytmy.pl nie są jedyną stroną o tym w sieci. Masz na pęczki artykułów o algorytmach sortowania we wszystkich językach świata. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 16 Pomógł: 1 Dołączył: 15.10.2008 Ostrzeżenie: (0%) ![]() ![]() |
Dobra, nawet jeśli mam dużo informacji na temat sortowania, to dalej nie wiem, jak ich użyć do własnego sortowania według zmodyfikowanego alfabetu. Skoro się wypowiedziałeś na ten temat, to założę się, że wiesz coś na ten temat. Może mógłbyś mi pomóc? Nakierować mnie, jakiej użyć funkcji, ewentualnie podać adres strony jakiegoś poradnika z takim rodzajem sortowania lub napisać to pseudokodem, podając nazwę funkcji? Niestety nie mam pojęcia jak się za to zabrać... Jeśli miałbym sortować tablice za pomocą pętli lub funkcji wykonującej to samo na kilku tablicach, to pewnie posortowałoby je oddzielnie, tzn. osobno sortując $name, osobno $klasy, itd. mnie natomiast chodzi o posortowanie jednej tablicy, na podstawie której sortują się pozostałe. Moje wymagania spełnia funkcja array_multisort, jednak nie pozwala ona (z tego, co wiem) na zdefiniowanie własnego sposobu (kolejności) sortowania.
EDIT: Ja na razie mam taki kod:
Działa on poprawnie, jednak sortowanie jest nieco inne, niż bym sobie tego życzył. Wynikiem jest tablica zawierająca na przykład takie elementy:
Zależy mi na tym, aby po 33 znalazł się 37, czyli aby najpierw sortowało F_ (lub po prostu coś zawierającego podkreślnik), a dopiero później resztę, czyli F2, itd. Ten post edytował QooBooS 2.03.2010, 17:00:13 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 18:44 |