![]() |
![]() ![]() |
![]() |
![]() ![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 1 429 Pomógł: 195 Dołączył: 6.10.2008 Skąd: Kraków/Tomaszów Lubelski Ostrzeżenie: (0%) ![]() ![]() |
Witam, mam problem z posortowaniem tablicy wielowymiarowej. Z racji dość nietypowego rozmieszczenia argumentów ciężko mi zrozumieć zasadę działania tej funkcji i nie bardzo mi wychodzi. Myślę na przykładzie lepiej bym zrozumiał. Chcę posortować np. taką tablicę wg "silnik". Chcę aby tablica była posortowana wg pojemności rosnąco
czyli najpierw musi być VOLVO, potem FIAT i na końcu BMW PS ale chcialbym móc też elastycznie zmieniać wg czego chcę sortować, bo np mogę chcieć sortować po markach czy typie silnika i tu poległem Ten post edytował MateuszS 12.06.2010, 12:44:00 -------------------- O! Zimniok :P
|
|
|
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Tobie jest raczej potrzebne usort. Masz w przykładach podobny przypadek do Twojego.
-------------------- ![]() ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW! |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 664 Pomógł: 169 Dołączył: 8.01.2010 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Do czegoś takiego służy funkcja uksort:
-------------------- |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 1 429 Pomógł: 195 Dołączył: 6.10.2008 Skąd: Kraków/Tomaszów Lubelski Ostrzeżenie: (0%) ![]() ![]() |
Ale twój przykład bastard13 nie działa gdy chcę posortować nie wg liczby a np marki, wtedy nie działa. Bo mam trochę inną strukturę tablicy teraz, może coś źle przerobiłem
Kod tu posortowane wg pojemnosci twoja funkcja
Array ( [3] => Array ( [0] => ) [2] => Array ( [0] => audi [1] => a4 [2] => Gaz [3] => 3000 [4] => ii [5] => Aa [6] => ) [1] => Array ( [0] => Merol [1] => SSKlasse [2] => Benzyna [3] => 3500 [4] => ok [5] => Aa [6] => ) [0] => Array ( [0] => Fiat [1] => 125p [2] => Diesel [3] => 2500 [4] => ok [5] => Aa [6] => ) ) -------------------- O! Zimniok :P
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 664 Pomógł: 169 Dołączył: 8.01.2010 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
A jak wygląda teraz struktura tablicy? Bo na tej tablicy co dałeś w pierwszym poście sprawdzałem i działało.
-------------------- |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 1 429 Pomógł: 195 Dołączył: 6.10.2008 Skąd: Kraków/Tomaszów Lubelski Ostrzeżenie: (0%) ![]() ![]() |
Dałem strukturę tablicy w poście powyżej, ona jest generowana skryptem z pliku więc nie mam jak ci pokazać,
w pliku dane są przechowywane po ";"
-------------------- O! Zimniok :P
|
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 664 Pomógł: 169 Dołączył: 8.01.2010 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Jeżeli $auto nie jest tablicą asocjacyjną to skorzystaj z funkcji usort() zamiast uksort(). I zamiast stringa do zmiennej $var w funkcji cmp() wpisz wartośc odpowiedniego wiersza, po którym ma być sortowana tablica np. $var=3, gdy po pojemności silnika.
Ten post edytował bastard13 12.06.2010, 13:46:51 -------------------- |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 15.07.2025 - 11:23 |