Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Tablica zwraca jeden znak.
Forum PHP.pl > Forum > PHP
virtualman
Witam,
mam taki kod:
  1. case '8.png': $data['min']=500; $data['max']=600; $data['description']='Ranga od '.$data['min'].' do '.$data['max'].'.'; return $data; break;

Oraz wywołanie:
  1. $a = funkcjakwktorejjestswitch($dane);
  2. echo $a['description'];

I zwraca tylko 'R'. Pomocy! Pierwszy raz spotykam się z czymś takim w PHP przecież to nie C++ gdzie są tablice znaków...
Z góry dziękuje i pozdrawiam Virtualman.
Niktoś
To mi wygląda na tablicę asocjacyjną.Próbowałeś przez foreach?
virtualman
Dobra, dokładnie wywołanie wygląda tak:
  1. <?php foreach ($rang as $item): ?>
  2. <div class="field"><img src="<?php echo base_url();?>style/rang/<?php echo $item; ?>" alt="#"/><span><?php $a = rang($item); echo $a['description'];?></span></div>
  3. <?php endforeach; ?>

Chciałem uprościć wstydnis.gif
lukaskolista
1. tablica nic nie zwraca - zwracac moze funkcja
2. po return nie musisz uzywac break, wszystko co znajduje sie po return nie jest wykonywane (to takie exit wewnatrz funkcji)
3. Podaj caly kod, bo nikt tutaj wrozyc nie potrafi (nikt Ci go nie ukradnie).
Niktoś
Wytłumacz mi co to za kombinacja:
  1. <?php $a = rang($item); echo $a['description'];?></span></div>
  2. <?php endforeach; ?>


rang($item) questionmark.gif

  1. <?php echo $item['description'];?></span></div>
  2. <?php endforeach; ?>
virtualman
Korzystam z frameworku CodeIgniter. To jest ta cała funkcja:
  1. function rang($data){
  2. switch($data){
  3. case '1.png': $data['min']=0; $data['max']=20; $data['description']='Najniższa ranga dla początkująćych użytkowników od '.$data['min'].' do '.$data['max'].'..'; return $data;
  4. case '2.png': $data['min']=20; $data['max']=50; $data['description']='Ranga od '.$data['min'].' do '.$data['max'].'..'; return $data;
  5. case '3.png': $data['min']=50; $data['max']=100; $data['description']='Ranga od '.$data['min'].' do '.$data['max'].'..'; return $data;
  6. case '4.png': $data['min']=100; $data['max']=201; $data['description']='Ranga od '.$data['min'].' do '.$data['max'].'..'; return $data;
  7. case '5.png': $data['min']=200; $data['max']=300; $data['description']='Ranga od '.$data['min'].' do '.$data['max'].'..'; return $data;
  8. case '6.png': $data['min']=300; $data['max']=400; $data['description']='Ranga od '.$data['min'].' do '.$data['max'].'..'; return $data;
  9. case '7.png': $data['min']=400; $data['max']=500; $data['description']='Ranga od '.$data['min'].' do '.$data['max'].'..'; return $data;
  10. case '8.png': $data['min']=500; $data['max']=600; $data['description']='Ranga od '.$data['min'].' do '.$data['max'].'..'; return $data;
  11. case '9.png': $data['min']=600; $data['max']=700; $data['description']='Ranga od '.$data['min'].' do '.$data['max'].'..'; return $data;
  12. case 'a.png': $data['min']=700; $data['max']=800; $data['description']='Ranga od '.$data['min'].' do '.$data['max'].'..'; return $data;
  13. case 'b.png': $data['min']=800; $data['max']=900; $data['description']='Aktualnie najwyższa ranga, dostępna od '.$data['min'].' do '.$data['max'].'..'; return $data;
  14. default: $data['min']='Unknowe'; $data['max']='Unknowe'; $data['description']='Unknowe'; return $data;
  15. }
  16. }

I wywołanie tak jak pisałem. W kontrolerze jeszcze jest $this -> load -> helper('rang');

W zmiennej rang są wszystkie obrazki (tablica), więc puszczam foreach żeby dostać nazwę każdego. Zrobiłem funkcje, która zwraca opis do obrazka z rang, ale zwraca w tablicy więc, a mnie interesuje tylko index ['description'].
lukaskolista
jako argument przyjmujesz $data (string), natomiast pozniej do zmiennej $data (podkreslam string) dodajesz klucze jak do tablicy.
Utworz wewnatrz funkcji zmienna $result i ja traktuj jak tablice, a nastepnie zwracaj.
virtualman
Fakt, wielkie dzięki 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.