Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Sorotwanie tablicy
Forum PHP.pl > Forum > Przedszkole
lled3
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.
neverever
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
lled3
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.
SirZooro
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
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.