Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Wyświetlanie odpowiedniej wartości z tablicy
arzach
post
Post #1





Grupa: Zarejestrowani
Postów: 332
Pomógł: 6
Dołączył: 27.11.2008

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


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
Go to the top of the page
+Quote Post
b4rt3kk
post
Post #2





Grupa: Zarejestrowani
Postów: 1 933
Pomógł: 460
Dołączył: 2.04.2010
Skąd: Lublin

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


Najpierw może napisz co ten kod ma robić, bo po przeczytaniu tych paru linijek powiem szczerze, że nie wiem co chcesz osiągnąć.


--------------------
Jeśli pomogłem, kliknij proszę 'pomógł'. Dzięki.
Go to the top of the page
+Quote Post
arzach
post
Post #3





Grupa: Zarejestrowani
Postów: 332
Pomógł: 6
Dołączył: 27.11.2008

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


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

Ten post edytował arzach 25.02.2015, 12:06:44
Go to the top of the page
+Quote Post
Aqu
post
Post #4





Grupa: Zarejestrowani
Postów: 279
Pomógł: 58
Dołączył: 14.07.2012

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


  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;
Go to the top of the page
+Quote Post
b4rt3kk
post
Post #5





Grupa: Zarejestrowani
Postów: 1 933
Pomógł: 460
Dołączył: 2.04.2010
Skąd: Lublin

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


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.

Ten post edytował b4rt3kk 25.02.2015, 12:16:05


--------------------
Jeśli pomogłem, kliknij proszę 'pomógł'. Dzięki.
Go to the top of the page
+Quote Post
Aqu
post
Post #6





Grupa: Zarejestrowani
Postów: 279
Pomógł: 58
Dołączył: 14.07.2012

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


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.
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: 22.08.2025 - 05:35