Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] sortowanie tablicy wielowymiarowej
Chemiq
post 16.02.2008, 19:52:21
Post #1





Grupa: Zarejestrowani
Postów: 105
Pomógł: 0
Dołączył: 16.07.2006

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


męczy mnie już od kilku godzin taki problem. mam tablicę która wygląda w ten sposób:
  1. <?php
  2. $tablica = array(
  3. => array('wartosc1', 'wartosc2', 'wartosc3', 'wartosc4', 'wartosc5', 'wartosc6', 'wartosc7', 'wartosc8'),
  4. => array('wartosc1', 'wartosc2', 'wartosc3', 'wartosc4', 'wartosc5', 'wartosc6', 'wartosc7', 'wartosc8'),
  5. //... aktualnie około 50 takich linii ale w przyszłości będzie ich nawet 3-4 razy tyle
  6. );
  7. ?>


potrzebuję posortować ją malejąco według kolumn 'wartosc3' w której znajdują się liczby całkowite (w zakresie od 1 do 12 jeżeli to ma jakieś znaczenie). na wypadek gdyby były takie same (co będzie bardzo prawdopodobne biorąc pod uwagę ich zakres) chciałbym aby drugim kryterium sortowania była kolumna 'wartosc2' z ciągiem znaków (tu z kolei uszeregowane rosnąco).

próbowałem to jakoś wykombinować z array_multisort() i różnymi wariantami funkcji sort() ale nie dało to oczekiwanego efektu. proszę o pomoc.

z góry dziękuję
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
nowotny
post 16.02.2008, 19:59:37
Post #2





Grupa: Zarejestrowani
Postów: 875
Pomógł: 122
Dołączył: 2.02.2008

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


Robisz dokładnie tak jak jest przykład w manualu...
Najpierw tablice pomocnicze:
  1. <?php
  2. foreach ($tablica as $key => $row) {
  3. $wartosc3[$key] = $row[2];
  4. $wartosc2[$key] = $row[1];
  5. }
  6. ?>

I potem sortujesz wg. tych tablic:
  1. <?php
  2. array_multisort($wartosc3, SORT_DESC, $wartosc2, SORT_ASC, $tablica);
  3. ?>

Identyczny przykład jest w manualu...[sql][/sql]

Ten post edytował nowotny 16.02.2008, 20:00:26
Go to the top of the page
+Quote Post
Chemiq
post 16.02.2008, 20:57:17
Post #3





Grupa: Zarejestrowani
Postów: 105
Pomógł: 0
Dołączył: 16.07.2006

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


no tak. w sumie to było banalne. ale wiem dlaczego mi nie działało. namieszał mi jakiś przykład z innej strony i dlatego przekombinowałem. ogromne dzięki biggrin.gif
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 - 03:14