Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] sortowanie tablicy wielowymiarowej
Forum PHP.pl > Forum > Przedszkole
Chemiq
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ę
nowotny
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]
Chemiq
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
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.