![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 79 Pomógł: 0 Dołączył: 31.07.2003 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Mam problem, z ktorym nie moge sobie poradzic. Problem wyglada nastepujaco: Pobieram z bazy danych z dwoch roznych tabel po 10 wierszy (z kazdej tabeli) i potem za pomoca funkcji array_merge lacze oba wyniki w jedna tablice. print_r tablicy wyglada mniej wiecej tak: Kod Array ( [0] => Array ( [0] => 1 [id] => 1 [2] => 20-10-2004 [data] => 20-10-2004 ) [1] => Array ( [0] => 2 [id] => 2 [2] => 21-10-2004 [data] => 21-10-2004 [3] => 2 [jakies_pole] => 2 ) } Problem tkwi w tym, ze mam rozne daty i jesli wyswietle je bez sortowania wedlug daty to mam mniej wiecej taki wynik: id | 21-10-2004 id | 31-10-2004 id | 11-11-2004 itp. W jaki sposob moge posortowac ta tablice wedlug daty tak aby sie wyswietlane wyniki byly sortowane od najwczesniejszej daty do najstarszej? -------------------- Yamaha YZF R1 |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 405 Pomógł: 1 Dołączył: 19.09.2003 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
Zauważyłem, że daty, które podałeś są ułożone chronologicznie. Jeśli dzieje się tak w każdym przypadku, to wystarczy Ci funkcja array_reverse" title="Zobacz w manualu PHP" target="_manual.
Jeśli natomiast ułożone są one w "losowej" kolejności, to najlepiej będzie napisać własne sortowanie. Na przykład tak:
Ten kawałek kodu można znacznie uprościć, gdybyś czas trzymał w formacie pozwalającym na łatwe porównywanie. Ponadto dla dużych tablic możesz użyć szybszego algorytmu sortującego, ale to już zupełnie inna bajka. -------------------- Rozwój cywilizacji informatycznej to wyścig między programistami, którzy wytwarzają coraz łatwiejsze
programy użytkowe dla idiotów, a światem produkującym coraz lepszych gatunkowo idiotów. Blog: Małolepszy.info |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 79 Pomógł: 0 Dołączył: 31.07.2003 Ostrzeżenie: (0%) ![]() ![]() |
Wielkie dzieki za funkcje Jojo ale chyba zapomnialem dodac jednego bardzo waznego elementu do mojego poprzedniego posta i dlatego funkcja sortujaca nie dziala tak jak powinna. Otoz chodzi o to, ze w pierwszej tablicy date mam np na "drugim miejscu" a w drugiej tablicy na "trzecim miejscu". Wkleje kod zeby bylo jasniej.
Kod Array ( [0] => Array ( [0] => 36 [id] => 36 [1] => 20-10-2004 [data] => 20-10-2004 ) [1] => Array ( [0] => 37 [id] => 37 [1] => 1 [kid] => 1 [2] => 20-10-2004 [data] => 20-10-2004 ) ) Sproboje sam przerobic funkcje ale jesli mi sie nie uda to sie odezwe ![]() -------------------- Yamaha YZF R1 |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 405 Pomógł: 1 Dołączył: 19.09.2003 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
Jeżeli masz tablicę indeksowaną ciągami znaków, to "miejsce" tej danej w tablicy nie ma najmniejszego znaczenia. Zauważ, że w moim kodzie odwołuję się do $tablica[0][ 'data' ], a nie $tablica[ 0 ][ 1 ].
-------------------- Rozwój cywilizacji informatycznej to wyścig między programistami, którzy wytwarzają coraz łatwiejsze
programy użytkowe dla idiotów, a światem produkującym coraz lepszych gatunkowo idiotów. Blog: Małolepszy.info |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 79 Pomógł: 0 Dołączył: 31.07.2003 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Odswiezam temat bo wkoncu zrobilem to sortowanie. Kod Jojo dal mi wiele pomocy aczkolwiek jest w nim blad. Chodzi o funkcje mktime, ktora powinna miec skladnie: Cytat mktime ( int godzina, int minuta, int sekunda, int miesiąc, int dzień, int rok [, int letni/zimowy]) a w kodzie sa zamienione miejscami dzien i miesiac. Napisalem wkoncu troche wlasnego kodu, ktory dziala tak jak nalezy:
-------------------- Yamaha YZF R1 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 23:12 |