Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Posorotwanie tablicy[SOLVED]
ed3k
post 22.07.2008, 20:00:47
Post #1





Grupa: Zarejestrowani
Postów: 61
Pomógł: 0
Dołączył: 30.03.2008

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


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?

Ten post edytował ed3k 22.07.2008, 20:55:13
Go to the top of the page
+Quote Post
Skie
post 22.07.2008, 20:29:47
Post #2





Grupa: Zarejestrowani
Postów: 555
Pomógł: 84
Dołączył: 20.02.2008
Skąd: Małopolska

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


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.

Ten post edytował Skie 22.07.2008, 20:31:24


--------------------
Wieloprocesowość i wielowątkowość w PHP, poznaj Kraken PHP!
Serwer HTTP i WebSocket w PHP | Promise/A+
Strona Domowa | Elradia MMORPG
FireFox: make the web better.
Go to the top of the page
+Quote Post
neverever
post 22.07.2008, 20:34:42
Post #3





Grupa: Zarejestrowani
Postów: 278
Pomógł: 44
Dołączył: 17.02.2004
Skąd: Wieliczka

Ostrzeżenie: (10%)
X----


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. ?>


--------------------
neverever
Go to the top of the page
+Quote Post
ed3k
post 22.07.2008, 20:54:32
Post #4





Grupa: Zarejestrowani
Postów: 61
Pomógł: 0
Dołączył: 30.03.2008

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


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]);
        }
    }


Ten post edytował ed3k 22.07.2008, 20:59:17
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: 7.07.2025 - 13:49