Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Sorotwanie tablicy
lled3
post
Post #1





Grupa: Zarejestrowani
Postów: 91
Pomógł: 0
Dołączył: 7.12.2007

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


tabela:
Kod
Array (     [tag] => Array         (             [0] => auto             [1] => olbrzymi             [2] => lew             [3] => samochód             [4] => smok             [5] => duży             [6] => kiwi             [7] => tygrys             [8] => malinka             [9] => krokodyl             [10] => owoc             [11] => cichy             [12] => kangur             [13] => spokojny             [14] => kolczatka         )      [ile] => Array         (             [0] => 2             [1] => 5             [2] => 5.6             [3] => 4             [4] => 4             [5] => 10.5             [6] => 1.6             [7] => 1             [8] => 2             [9] => 1             [10] => 1.4             [11] => 4.8             [12] => 1             [13] => 2.4             [14] => 1         )  ) auto2


i jak widać wygląda one tak:
wartość - przypisana liczba

i teraz chce posortować rosnąco ta tablice wg przypisanej liczby - ale tak by nie zmienic przypisanej im wartosc.

A tak wlasnie wychodzi funkcją sort() - sortuje - ale miesza wszytsko.
Go to the top of the page
+Quote Post
neverever
post
Post #2





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

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


Musisz skorzystać z sortowania zachowującego skojarzenia kluczy.
asort http://pl.php.net/manual/pl/function.asort.php
albo uasort http://pl.php.net/manual/pl/function.uasort.php -jeśli chcesz się bawić pisząc funkcje porównującą

wszystko masz w dokumentacji http://pl.php.net/array

Ten post edytował neverever 3.08.2008, 16:09:28


--------------------
neverever
Go to the top of the page
+Quote Post
lled3
post
Post #3





Grupa: Zarejestrowani
Postów: 91
Pomógł: 0
Dołączył: 7.12.2007

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


przyklad wprost z manuala
  1. <?php
  2. function so ($a, $b)
  3. {
  4. if($a == $b) return 0;
  5.  
  6. return ($a < $b) ? 1 : -1;
  7. }
  8.  
  9.  
  10. uasort($nowa, 'so');
  11. ?>


i nic ... nie robi.

asort rowniez nic nie robi.
Go to the top of the page
+Quote Post
SirZooro
post
Post #4





Grupa: Zarejestrowani
Postów: 243
Pomógł: 32
Dołączył: 14.06.2007

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


Coś namieszałeś...
  1. <?php
  2. $a[0] = 4;
  3. $a[1] = 5;
  4. $a[2] = 0;
  5. $a[3] = 5;
  6. $a[4] = 1;
  7.  
  8. print "<pre>";
  9. print_r($a);
  10. print "</pre>";
  11.  
  12. asort($a);
  13.  
  14. print "<pre>";
  15. print_r($a);
  16. print "</pre>";
  17. ?>

U mnie działa smile.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 Aktualny czas: 19.08.2025 - 16:00