![]() |
![]() ![]() |
![]() |
-semar- |
![]()
Post
#1
|
Goście ![]() |
witam
oto problem który napotkałem: Posiadam tablice z następującymi danymi 1 parametr to numer pozycji na liscie natomiast 2gi parametr to kolejno: 1-to nazwa pliku 2,3,4,5,6 to kolejno rok, miesiąc, dzień, godzina, minuta i sekunda utworzenia pliku, tablica miała być sortowana skryptem wgl roku utworzenia pliku ktorego dotyczy dana pozycja jeśli rok utworzenia pliku na pozycji x jest równa z rokiem utworzenia pliku na pozycji x+1 to następuje porównanie miesiąca itd. Jestem świadomy tego że ten skrypt gorzej napisać się nie dało, nie użyłem procedur etc. ale tak wygląda to przejżyściej. (chyba) CODE for ($j = 0; $j <= 20; $j++) for ($i = 1; $i < $liczba_plikow; $i++) { if($tab[$i][1] < $tab[i+1][1]) { $tab0[0] = $tab[$i][0]; $tab0[1] = $tab[$i][1]; $tab0[2] = $tab[$i][2]; $tab0[3] = $tab[$i][3]; $tab0[4] = $tab[$i][4]; $tab0[5] = $tab[$i][5]; $tab0[6] = $tab[$i][6]; $tab[$i][0] = $tab[$i+1][0]; $tab[$i][1] = $tab[$i+1][1]; $tab[$i][2] = $tab[$i+1][2]; $tab[$i][3] = $tab[$i+1][3]; $tab[$i][4] = $tab[$i+1][4]; $tab[$i][5] = $tab[$i+1][5]; $tab[$i][6] = $tab[$i+1][6]; $tab[$i+1][0] = $tab0[0]; $tab[$i+1][1] = $tab0[1]; $tab[$i+1][2] = $tab0[2]; $tab[$i+1][3] = $tab0[3]; $tab[$i+1][4] = $tab0[4]; $tab[$i+1][5] = $tab0[5]; $tab[$i+1][6] = $tab0[6]; } if(($tab[$i][1] == $tab[i+1][1]) && ($tab[$i][2] < $tab[i+1][2] )) { $tab0[0] = $tab[$i][0]; $tab0[1] = $tab[$i][1]; $tab0[2] = $tab[$i][2]; $tab0[3] = $tab[$i][3]; $tab0[4] = $tab[$i][4]; $tab0[5] = $tab[$i][5]; $tab0[6] = $tab[$i][6]; $tab[$i][0] = $tab[$i+1][0]; $tab[$i][1] = $tab[$i+1][1]; $tab[$i][2] = $tab[$i+1][2]; $tab[$i][3] = $tab[$i+1][3]; $tab[$i][4] = $tab[$i+1][4]; $tab[$i][5] = $tab[$i+1][5]; $tab[$i][6] = $tab[$i+1][6]; $tab[$i+1][0] = $tab0[0]; $tab[$i+1][1] = $tab0[1]; $tab[$i+1][2] = $tab0[2]; $tab[$i+1][3] = $tab0[3]; $tab[$i+1][4] = $tab0[4]; $tab[$i+1][5] = $tab0[5]; $tab[$i+1][6] = $tab0[6]; } if(($tab[$i][1] == $tab[i+1][1]) && ($tab[$i][2] == $tab[i+1][2]) && ( $tab[$i][3] < $tab[i+1][3] )) { $tab0[0] = $tab[$i][0]; $tab0[1] = $tab[$i][1]; $tab0[2] = $tab[$i][2]; $tab0[3] = $tab[$i][3]; $tab0[4] = $tab[$i][4]; $tab0[5] = $tab[$i][5]; $tab0[6] = $tab[$i][6]; $tab[$i][0] = $tab[$i+1][0]; $tab[$i][1] = $tab[$i+1][1]; $tab[$i][2] = $tab[$i+1][2]; $tab[$i][3] = $tab[$i+1][3]; $tab[$i][4] = $tab[$i+1][4]; $tab[$i][5] = $tab[$i+1][5]; $tab[$i][6] = $tab[$i+1][6]; $tab[$i+1][0] = $tab0[0]; $tab[$i+1][1] = $tab0[1]; $tab[$i+1][2] = $tab0[2]; $tab[$i+1][3] = $tab0[3]; $tab[$i+1][4] = $tab0[4]; $tab[$i+1][5] = $tab0[5]; $tab[$i+1][6] = $tab0[6]; } if(($tab[$i][1] == $tab[i+1][1]) && ($tab[$i][2] == $tab[i+1][2]) && ($tab[$i][3] == $tab[i+1][3]) && ( $tab[$i][4] < $tab[i+1][4] )) { $tab0[0] = $tab[$i][0]; $tab0[1] = $tab[$i][1]; $tab0[2] = $tab[$i][2]; $tab0[3] = $tab[$i][3]; $tab0[4] = $tab[$i][4]; $tab0[5] = $tab[$i][5]; $tab0[6] = $tab[$i][6]; $tab[$i][0] = $tab[$i+1][0]; $tab[$i][1] = $tab[$i+1][1]; $tab[$i][2] = $tab[$i+1][2]; $tab[$i][3] = $tab[$i+1][3]; $tab[$i][4] = $tab[$i+1][4]; $tab[$i][5] = $tab[$i+1][5]; $tab[$i][6] = $tab[$i+1][6]; $tab[$i+1][0] = $tab0[0]; $tab[$i+1][1] = $tab0[1]; $tab[$i+1][2] = $tab0[2]; $tab[$i+1][3] = $tab0[3]; $tab[$i+1][4] = $tab0[4]; $tab[$i+1][5] = $tab0[5]; $tab[$i+1][6] = $tab0[6]; } if(($tab[$i][1] == $tab[i+1][1]) && ($tab[$i][2] == $tab[i+1][2]) && ($tab[$i][3] == $tab[i+1][3]) && ($tab[$i][4] == $tab[i+1][4]) && ( $tab[$i][5] < $tab[i+1][5] )) { $tab0[0] = $tab[$i][0]; $tab0[1] = $tab[$i][1]; $tab0[2] = $tab[$i][2]; $tab0[3] = $tab[$i][3]; $tab0[4] = $tab[$i][4]; $tab0[5] = $tab[$i][5]; $tab0[6] = $tab[$i][6]; $tab[$i][0] = $tab[$i+1][0]; $tab[$i][1] = $tab[$i+1][1]; $tab[$i][2] = $tab[$i+1][2]; $tab[$i][3] = $tab[$i+1][3]; $tab[$i][4] = $tab[$i+1][4]; $tab[$i][5] = $tab[$i+1][5]; $tab[$i][6] = $tab[$i+1][6]; $tab[$i+1][0] = $tab0[0]; $tab[$i+1][1] = $tab0[1]; $tab[$i+1][2] = $tab0[2]; $tab[$i+1][3] = $tab0[3]; $tab[$i+1][4] = $tab0[4]; $tab[$i+1][5] = $tab0[5]; $tab[$i+1][6] = $tab0[6]; } if(($tab[$i][1] == $tab[i+1][1]) && ($tab[$i][2] == $tab[i+1][2]) && ($tab[$i][3] == $tab[i+1][3]) && ($tab[$i][4] == $tab[i+1][4]) && ($tab[$i][5] == $tab[i+1][5]) && ( $tab[$i][6] < $tab[i+1][6] )) { $tab0[0] = $tab[$i][0]; $tab0[1] = $tab[$i][1]; $tab0[2] = $tab[$i][2]; $tab0[3] = $tab[$i][3]; $tab0[4] = $tab[$i][4]; $tab0[5] = $tab[$i][5]; $tab0[6] = $tab[$i][6]; $tab[$i][0] = $tab[$i+1][0]; $tab[$i][1] = $tab[$i+1][1]; $tab[$i][2] = $tab[$i+1][2]; $tab[$i][3] = $tab[$i+1][3]; $tab[$i][4] = $tab[$i+1][4]; $tab[$i][5] = $tab[$i+1][5]; $tab[$i][6] = $tab[$i+1][6]; $tab[$i+1][0] = $tab0[0]; $tab[$i+1][1] = $tab0[1]; $tab[$i+1][2] = $tab0[2]; $tab[$i+1][3] = $tab0[3]; $tab[$i+1][4] = $tab0[4]; $tab[$i+1][5] = $tab0[5]; $tab[$i+1][6] = $tab0[6]; } } przed posortowaniem: pozycja_rok_miesiac_dzien_godzina_minuta_sekunda_nazwa pliku CODE 1__2012__07__22__20__27__00__1332008653513.jpg 2__2012__06__27__17__56__16__3.jpg 3__2012__07__22__18__13__18__8.jpg 4__2012__06__27__17__55__59__1.jpg 5__2012__07__22__20__59__53__1332112773691.jpg 6__2012__06__27__17__56__34__5.jpg 7__2012__06__27__17__56__07__2.jpg 8__2012__06__27__17__56__44__7.jpg 9__2012__07__22__20__27__20__1332201127422.jpg 10__2012__06__27__17__56__21__4.jpg 11__2012__06__27__17__56__41__6.jpg po posortowaniu: pozycja_rok_miesiac_dzien_godzina_minuta_sekunda_nazwa pliku CODE 1__2012__07__22__20__27__00__1332008653513.jpg 2__2012__07__22__20__59__53__1332112773691.jpg 3__2012__07__22__20__27__20__1332201127422.jpg 4__2012__06__27__17__56__41__6.jpg 5__2012__06__27__17__56__16__3.jpg 6__2012__06__27__17__55__59__1.jpg 7__2012__06__27__17__56__34__5.jpg 8__2012__06__27__17__56__07__2.jpg 9__2012__06__27__17__56__44__7.jpg 10__2012__06__27__17__56__21__4.jpg 11__2012__07__22__18__13__18__8.jpg Nie wiem dlaczego np 8.jpg znajduje sie na końcu, dlaczego plik z 2 pozycji nie jest pierwszy. |
|
|
-semar- |
![]()
Post
#2
|
Goście ![]() |
Przepraszam błąd:
2gi parametr tablicy: 0-nazwa pliku 1-rok 2-miesiąc 3-dzień 4-godzina 5-minuta 6-sekunda |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 1 729 Pomógł: 346 Dołączył: 4.04.2009 Ostrzeżenie: (0%) ![]() ![]() |
http://php.net/manual/en/function.array-multisort.php użyj, a nie wymyślaj koło na nowo albo jeszcze lepiej zapisz sobie w tablicy zamiast rok, miesiąc, dzień etc po prostu timestampa
i po nim posortuj, nie wiem w jakim celu tak sobie utrudniasz. Ten post edytował lobopol 22.07.2012, 20:55:50 -------------------- |
|
|
-semar- |
![]()
Post
#4
|
Goście ![]() |
Ciężko korzystać z czegoś o istnieniu czego się nie wie, żadnego kursu nie przerabiam bo to tylko 1 strone napisać potrzebuje. Dzięki, 3m się
![]() |
|
|
-semar- |
![]()
Post
#5
|
Goście ![]() |
array_multisort nie jest dla mnie takie oczywiste, mógłby ktoś napisać ten skrypt na podstawie mojej tablicy ?
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 30.07.2025 - 17:18 |