Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> sortowanie array'a po kawalku jego value, jak w tytule
-senobicus-
post 30.06.2005, 16:20:50
Post #1





Goście







witam,

napisalem sobie prostacki skrypcik do mojej galeryjki... chce dodac do niego mozliwosc pewnego sortowania plikow.

tak wyglada przykladowy array $images: Array ( [0] => 03_IMG_0201.jpg [1] => 03_dupa.jpg [2] => 02_najnowszy.jpg [3] => 02_aaaaaa.jpg [4] => 02_sdfsdfdsf.jpg [5] => 02_IMG_0213.jpg [6] => 02_IMG_0212.jpg [7] => 02_IMG_0210.jpg [8] => 02_IMG_0209.jpg [9] => 02_IMG_0206.jpg [10] => 02_IMG_0205.jpg [11] => 02_nowyb.jpg [12] => 02_test2.jpg [13] => 02_test.jpg [14] => 01_IMG_0233.jpg [15] => 01_baldachim.jpg [16] => 01_nowya.jpg [17] => 01_krasnoludek.jpg [18] => 01_blachy.jpg )

chcialbym to posortowac w taki sposob zeby zachowac z powyzszego arraya kolejnosc ciagow ktore zaczynaja sie ta sama cyfra, np. 02_ ale tak zeby same ciagi byly w normalnej kolejnosci czyli 01_, 02_, 03_ itd.

czyli w tym przypadku zeby wyszlo cos takiego $images:
Array ( [0] => 01_IMG_0233.jpg [1] => 01_baldachim.jpg [2] => 01_nowya.jpg [3] => 01_krasnoludek.jpg [4] => 01_blachy.jpg [5] => 02_najnowszy.jpg [6] => 02_aaaaaa.jpg [7] => 02_sdfsdfdsf.jpg [8] => 02_IMG_0213.jpg [9] => 02_IMG_0212.jpg [10] => 02_IMG_0210.jpg [11] => 02_IMG_0209.jpg [12] => 02_IMG_0206.jpg [13] => 02_IMG_0205.jpg [14] => 02_nowyb.jpg [15] => 02_test2.jpg [16] => 02_test.jpg [17] => 03_IMG_0201.jpg [18] => 03_dupa.jpg )

pewnie to banalnie proste, ale ja nie znam sie na programowaniu i php zbyt dobrze (jestem tylko grafikiem) i chcialbym prosic zeby ktos napisal te pare linijek petelki za mnie, bo ja sie mecze z tym juz tydzien i mi sie nie udaje sad.gif
czy ktos moglby mi pomoc, bede bardzo wdzieczny.

pozdrawiam
krzysiek
Go to the top of the page
+Quote Post
-senobicus-
post 30.06.2005, 16:31:11
Post #2





Goście







ew. jezeli ktos moglby mi napisac jak sprawdzic dane potrzebne do wykorzystania funkcji array_slice, czyli od jakiego momentu zaczyna sie jeden ciag np. 02_ i ile ma miejsc? bo to by mi chyba umozliwilo napisanie petelki samemu.

z gory dziekuje.
Go to the top of the page
+Quote Post
pirat
post 30.06.2005, 18:15:28
Post #3





Grupa: Zarejestrowani
Postów: 68
Pomógł: 0
Dołączył: 13.05.2003
Skąd: Katowice

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


zwykłe SORT sobie z tym radzi ....

  1. <?php
  2.  
  3. $tablica = Array ( 0 => '03_IMG_0201.jpg', 1 => '03_dupa.jpg', 2 => '02_najnowszy.jpg', 3 => '02_aaaaaa.jpg', 4 => '02_sdfsdfdsf.jpg', 5 => '02_IMG_0213.jpg');
  4.  
  5. sort($tablica);
  6.  
  7. foreach($tablica as $i => $values) {
  8. print &#092;"$i ma : $values <br>\" ;
  9. }
  10.  
  11. ?>


--------------------
Zdrowy rozsądek to rzecz, której każdy potrzebuje, mało, kto posiada, a nikt nie wie, że mu brakuje.

Czasami myślę, iż Bóg tworząc człowieka przecenił nieco swoje zdolności.
Go to the top of the page
+Quote Post
-senobicus-
post 1.07.2005, 23:34:09
Post #4





Goście







otorz, nie radzi sobie niestety.

bo uklada to alfabetycznie... a niestety nie tak ma byc.
porownaj wynik swojego kodu z tym, ktory chce osiagnac.
jest inny.

ma zachowac uklad wewnatrz ciagow. taki jest warunek.
moze z tym wyciaganiem slice'a ktos pomoze chociaz?

bardzo bym prosil.
Go to the top of the page
+Quote Post
crash
post 1.07.2005, 23:53:26
Post #5





Grupa: Przyjaciele php.pl
Postów: 2 196
Pomógł: 2
Dołączył: 17.01.2004
Skąd: Sosnowiec

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


Ten twój wynik jest dość niezrozumiały. Raz masz nazwe z *_IMG* na początku, raz na końcu... I jak tu coś rozumieć. Zgadzam się z piratem, że samo sort() starczy.


--------------------
Go to the top of the page
+Quote Post
-senobicus-
post 2.07.2005, 13:54:01
Post #6





Goście







nie, no wlasnie raz na poczatku raz koncu... i wlasnie ten specyficzny, dziwnie posortowany uklad chce utrzymac. jest to specyficzny uklad, ktory jest mi potrzebny, wlasnie taki, zaden inny. wiec sort() NIE wystarczy niestety.

bo przy sort() '02_najnowszy.jpg' bedzie po '02_aaaaaa.jpg', a przy rsort() '02_sdfsdfdsf.jpg' bedzie przed '02_aaaaaa.jpg' itp. itd. a poniewaz nijak sie nie da utrzymac tego specyficznego sortowania zadna funkcja php z rodziny sort()... musze odczytac to sortowanie i potem je poukladac blokami. no i sie pytam jak to zrobic?

recznie takie sortowanie wyglada jak ponizej, ale poniewaz elementy beda rozne i rozna bedzie ilosc w poszczegolnych blokach, i blokow bedzie rozna ilosc, potrzebuje zrobic cos podobnego ale w petli:

Kod
$images03 = array_slice($images, 0, 2);
$images02 = array_slice($images, 2, 12);
$images01 = array_slice($images, 14, 5);

$images = array_merge($images01, $images02, $images03);


to moze moze jednak z tym array_slice() mi pomorzecie?

dzieki jeszcze raz i sorry ze tak mecze.
Go to the top of the page
+Quote Post
pirat
post 2.07.2005, 21:57:15
Post #7





Grupa: Zarejestrowani
Postów: 68
Pomógł: 0
Dołączył: 13.05.2003
Skąd: Katowice

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


to może usort() albo uasort() cool.gif

a jak nie to, wiecej kombinowania niz to warte ;]


--------------------
Zdrowy rozsądek to rzecz, której każdy potrzebuje, mało, kto posiada, a nikt nie wie, że mu brakuje.

Czasami myślę, iż Bóg tworząc człowieka przecenił nieco swoje zdolności.
Go to the top of the page
+Quote Post
-senobicus-
post 2.07.2005, 23:37:30
Post #8





Goście







czytasz czasem ze zrozumieniem pirat? napisalem ze nic z rodziny 'sort()' nie dziala. a kombinowania jest 10 linijek. ale co tam. powodzenia programisci ;P
mi sie udalo.
Go to the top of the page
+Quote Post
crash
post 2.07.2005, 23:50:28
Post #9





Grupa: Przyjaciele php.pl
Postów: 2 196
Pomógł: 2
Dołączył: 17.01.2004
Skąd: Sosnowiec

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


No to podziel się z nami kodem, może komuś innemu się takie coś przyda. A i nie potępiaj odrazu funkcji u*sort(), bo chyba nie wiesz w jaki sposób sortują tablice...


--------------------
Go to the top of the page
+Quote Post
pirat
post 3.07.2005, 08:17:08
Post #10





Grupa: Zarejestrowani
Postów: 68
Pomógł: 0
Dołączył: 13.05.2003
Skąd: Katowice

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


Przepraszam ze chcialem pomoc, to juz sie nie powtorzy.
Przepraszam ze nie zrozumialem co wogole chcesz osiagnac, ale nie jestem chyba jedyny.
Przepraszam ze sam rozwiazales ten problem
tiredsmiley.gif
ps. jak wszystkie metody zawiodą poczytaj instrukcje www.php.net

pss. jak chcesz raz sortowac w ta strone a raz w tą zależnie od indeksu(prefixu), dalej sie upieram ze usortem, da sie to zrealziowac, jesi chodzi CI o cos innego.... to napisz to jaśniej, albo lepiej nie....

psss. jak porozbijasz to na mniejsze tablice wzgledem prefixow, ktora tu masz, to chyba bedzie latwiej cokolwiek zrobic


pozdrawiam


--------------------
Zdrowy rozsądek to rzecz, której każdy potrzebuje, mało, kto posiada, a nikt nie wie, że mu brakuje.

Czasami myślę, iż Bóg tworząc człowieka przecenił nieco swoje zdolności.
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 Wersja Lo-Fi Aktualny czas: 14.08.2025 - 04:52