Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Wyświetlanie odpowiedniej wartości z tablicy
Forum PHP.pl > Forum > Przedszkole
arzach
Witam
Mam tablice z rangami użytkowników i tak np.
Ranga1 ma przedział od 1 do 20
Ranga2 ma przedział do 21 do 30 i tak dalej
I napisałem taki kod
  1. $user_poit = 31;
  2.  
  3. $rangs1 = array('ranga1' => 20, 'ranga2' => 30, 'ranga3' => 50);
  4.  
  5. $rangs = array_filter($rangs1, function($k) use ($user_poit) {
  6. return $k >= $user_poit;
  7. });
  8.  
  9.  
  10. $rangs1 = array_flip($rangs1);
  11. $rangs = array_flip($rangs);
  12. if(empty($rangs)) {
  13. echo end($rangs1);
  14. } else {
  15. echo current($rangs);
  16. }

I teraz pytanie czy da się to zrobić prościej questionmark.gifquestionmark.gif
b4rt3kk
Najpierw może napisz co ten kod ma robić, bo po przeczytaniu tych paru linijek powiem szczerze, że nie wiem co chcesz osiągnąć.
arzach
Chcę stworzyc system rang
Rangi mam w tablicy
I na podstawie pkt użytkowników chce im przypisać odpowiednią rangę z tablicy
I tak np. user mam 31 pkt
$rangs1 = array('ranga1' => 20, 'ranga2' => 30, 'ranga3' => 50);

Czyli wychodzi ze ma range3
Rangi są od do czyli

ranga1 od 0 do 20

ranga2 od 21 do 30

i tak dalej
I chce napisać kod który na podstawie pkt wyświetli odpowiednią rangę z tablicy
Aqu
  1. $user_poit = 31;
  2.  
  3. $rangs1 = array('ranga1' => 20, 'ranga2' => 30, 'ranga3' => 50);
  4. foreach($rangs1 as $name => $value) {
  5. if($user_poit <= $value) {
  6. $user_rang = $name;
  7. break;
  8. }
  9. }
  10.  
  11. echo $user_rang;
b4rt3kk
Cytat(arzach @ 25.02.2015, 12:05:42 ) *
Chcę stworzyc system rang
Rangi mam w tablicy
I na podstawie pkt użytkowników chce im przypisać odpowiednią rangę z tablicy
I tak np. user mam 31 pkt
$rangs1 = array('ranga1' => 20, 'ranga2' => 30, 'ranga3' => 50);

Czyli wychodzi ze ma range3
Rangi są od do czyli

ranga1 od 0 do 20

ranga2 od 21 do 30

i tak dalej
I chce napisać kod który na podstawie pkt wyświetli odpowiednią rangę z tablicy


Myślę, że zwykły foreach tutaj wystarczy:

  1. arsort($rangi);
  2.  
  3. foreach ($rangi as $key => $value) {
  4. if ($punkty >= $value) {
  5. $szukana_ranga = $key;
  6. break;
  7. }
  8. }


EDIT:
Zapomniałem o ważnej kwestii, posortowaiu tablicy.
Aqu
Widzę, że napisaliśmy prawie identyczny kod. wink.gif
Tylko masz przeciwny znak, Twój kod np. dla 25 punktów wyświetli rangę1, a powinien rangę2.
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.