Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Posorotwanie tablicy[SOLVED]
Forum PHP.pl > Forum > Przedszkole
ed3k
Witam! Mam taka tablicę:
Kod
Array
(
     [urolog] => Array
         (
             [badanie okresowe] => Array
                 (
                     [0] => 40
                     [1] => 30
                 )

         )

     [ginekolog] => Array
         (
             [badanie okresowe] => Array
                 (
                     [0] => 0
                     [1] => 40
                     [2] => 0
                 )

         )

     [stomatolog] => Array
         (
             [badanie okresowe] => Array
                 (
                     [0] => 50
                     [1] => 50
                 )

         )

)

Chciałbym aby ta tablica miała postać:
Kod
Array
(
     [urolog] => Array
         (
             [badanie okresowe] => Array
                 (
                     [0] => 30
                     [1] => 40
                 )

         )

     [ginekolog] => Array
         (
             [badanie okresowe] => Array
                 (
                     [0] => 0
                     [1] => 0
                     [2] => 40
                 )

         )

     [stomatolog] => Array
         (
             [badanie okresowe] => Array
                 (
                     [0] => 50
                     [1] => 50
                 )

         )

)

Jak widac, chodzi o posortowanie ostatniego poziomu elementow od najmniejszej wartosci do najwiekszej. Funkcja sort() jest od tego, ale to zadanie mnie chyba przerasta.
Czy ktos widzi w tym jakies rozwiazanie?
Skie
Jeżeli założymy że całość Twojej tablicy to np. $tablica, to musiałbyś to tak zrobić

Kod
sort($tablica[urolog][badanie_okresowe]);
sort($tablica[ginekolog][badanie_okresowe]);
sort($tablica[stomatolog][badanie_okresowe]);


PS. napisałem badanie_okresowe zamiast badanie okresowe, gdyż nie byłem pewien czy dwa wyrazy mogą być indeksem tablicy.
neverever
Na mój gust, to: http://pl2.php.net/manual/pl/function.array-multisort.php

Musisz chyba oddzielnie posortować poszczególne podtablice

prosty przykład sortowania:
  1. <?php
  2. $tab=array(); $tab2=array();
  3. $tab2[0]=40; $tab2[1]=30;
  4. $tab['xyz']=$tab2; $tab['abc']=$tab2;
  5. //definicja testowej tablicy
  6.  
  7. print_r($tab); //przed posortowaniem
  8. print('<hr>');
  9.  
  10. array_multisort ($tab, SORT_STRING, SORT_ASC, $tab['abc'], SORT_NUMERIC, SORT_ASC);
  11.  
  12. print_r($tab); //po posortowaniu
  13. ?>
ed3k
Cytat(Skie @ 22.07.2008, 21:29:47 ) *
Jeżeli założymy że całość Twojej tablicy to np. $tablica, to musiałbyś to tak zrobić

Kod
sort($tablica[urolog][badanie_okresowe]);
  sort($tablica[ginekolog][badanie_okresowe]);
  sort($tablica[stomatolog][badanie_okresowe]);


PS. napisałem badanie_okresowe zamiast badanie okresowe, gdyż nie byłem pewien czy dwa wyrazy mogą być indeksem tablicy.


Dziala winksmiley.jpg dziekie ^^ co do PS. moga, tylko musza byc napisane jako lancuch miedzy ' '
Kod
sort($tablica['ginekolog']['badanie okresowe']);


teraz pytanie drugie: jak to zrobic, gdy te tablice moga sie zmieniac w ilosci arg? smile.gif ale juz sobie chyba sam poradze.

Odpowiedz dla innych:
tablica ma nazwe $arrCena

Kod
    foreach ($arrCena as $galaz => $arrTyp) {
        foreach ($arrTyp as $typ => $arrPozycje) {
            sort($arrCena[$galaz][$typ]);
        }
    }
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.