Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Sortowanie
Forum PHP.pl > Forum > PHP
Babcia@Stefa
Witam, chciałbym posortować tablicę według wybranej wartości.

Mam kod:
  1. <?php
  2. $player['test2'] = array('level' => 43, 'voc' => 1, 'sex' => 1, 'lastlogin' => 1174772610);
  3. $player['test3'] = array('level' => 5, 'voc' => 4, 'sex' => 2, 'lastlogin' => 1174772610);
  4. $player['Xidaozu'] = array('level' => 1, 'voc' => 3, 'sex' => 1, 'lastlogin' => 1174772610);
  5. ?>


Chciałbym posortować tablicę według klucza level.

@offtopic
Bardzo ładny panel (grafika świąteczna) winksmiley.jpg

@HuTu
Dzięki, spróbuję winksmiley.jpg
@edit
Właśnie jeszcze oto mi chodzi że nie chce pisać własnej funkcji sortującej...

Dziękuję, Babcia@Stefa
HuTu
Trzeba korzystając z funkcji usort napisać funkcję sortującą. Jak to zrobić opisano w manualu tongue.gif

Jeszcze może dodam, że w tym wypadku powinna to być funkcja uasort, aby zachować skojarzenia kluczy.

@edit
A dlaczego nie chcesz pisać własnej funkcji sortującej? I dlaczego edytujesz posty? Później mi nie wypada pisać jeden pod drugim tongue.gif
franki01
  1. <?php
  2. $player = array();
  3. $player['test2'] = array('level' => 3, 'voc' => 1, 'sex' => 1, 'lastlogin' => 1174772610);
  4. $player['test3'] = array('level' => 5, 'voc' => 4, 'sex' => 2, 'lastlogin' => 1174772610);
  5. $player['Xidaozu'] = array('level' => 1, 'voc' => 3, 'sex' => 1, 'lastlogin' => 1174772610);
  6.  
  7. $field = array();
  8. foreach ($player as $key => $value) {
  9. $field[$key] = $value['level']; // dla zmiany kolumny, w tym miejscu zamiast 'level' wpisac inne pole
  10. }
  11. array_multisort($field, SORT_DESC, $player);
  12. ?>


Po tym bedziesz mial przesortowana tablice $player jak chciales. Niestety prosciej sie nie da...
Babcia@Stefa
Cytat(HuTu @ 19.12.2007, 18:08:15 ) *
Trzeba korzystając z funkcji usort napisać funkcję sortującą. Jak to zrobić opisano w manualu tongue.gif

Jeszcze może dodam, że w tym wypadku powinna to być funkcja uasort, aby zachować skojarzenia kluczy.

@edit
A dlaczego nie chcesz pisać własnej funkcji sortującej? I dlaczego edytujesz posty? Później mi nie wypada pisać jeden pod drugim tongue.gif


Edytuje posty aby nie zaśmiecać forum, inaczej musiał bym pisać jeden pod drugim haha.gif

@up
Jescze jedno, jak w tym kodzie będę mógł odnaleść nazwę gracza do którego należy klucz level?

@edit
Wszystko ładnie śmiga winksmiley.jpg
A tak jeszcze:
Poco ten komentarz, nie jestem aż tak głupi haha.gif
Pisze teraz statystyki serwera (potrzebuje posortować statystyki według klucza od największego do najmniejszego)
Nigdy nie używałem sortowania, tylko w MySQL.

Dziekuję, Babcia@Stefa
franki01
  1. <?php
  2. $searched = 1; // dowolna wartość
  3.  
  4. $player = array();
  5. $player['test2'] = array('level' => 3, 'voc' => 1, 'sex' => 1, 'lastlogin' => 1174772610);
  6. $player['test3'] = array('level' => 5, 'voc' => 4, 'sex' => 2, 'lastlogin' => 1174772610);
  7. $player['Xidaozu'] = array('level' => 1, 'voc' => 3, 'sex' => 1, 'lastlogin' => 1174772610);
  8.  
  9. $field = array();
  10. foreach ($player as $key => $value) {
  11. $field[$key] = $value['level']; // można zmienić 'level'
  12. }
  13.  
  14. $nazwa_gracza = array_search($searched, $field);
  15. ?>
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.