Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Funkcja NEXT i powrót na początek tablicy
Forum PHP.pl > Forum > Przedszkole
bartek12421
Próbuję napisać generujący legendę do wykresu. Jego rysowanie na podstawie danych z ankiety to już mniej ważna sprawa.
Wykres wyrzuca mi słupki w kolejności od tego z najw. ilością głosów, do tego z najmniejszą ilością.

Słupki mają kolejno kolory: żółty, czerwony, niebieski, żółty czerwony, niebieski itd...
Mam problem z wygenerowaniem legendy. Otóż chcę aby wyglądała ona mniej-wiecej tak:

ZÓŁTY - ODPOWIEDŹ 1
CZERWONY - ODPOWIEDŹ 2
NIEBIESKI - ODPOWIEDŹ 3
ŻÓŁTY - ODPOWIEDŹ 4

Próbowałem używać funkcji next(), aby zwracać kolejny kolor dla odpowiedzi, ale ta metoda zatrzymuje się kiedy kolory zaczynają się powtarzać(skończy się tablica).
Jak się z tym można uporać?
thek
Przewinąć wskaźnik tablicy do początku lub odpowiedniego indeksu tablicowego smile.gif Jest begin(), end(), ale nie tylko. Popatrz sobie na dział o tablicach w manualu a sam zobaczysz.
erix
No zależy, jak wyświetlasz.

Najlepiej by było przez foreach, miałbyś ten problem z głowy.

Jeśli chodzi o te funkcje, to next zwróci na końcu false, wtedy reset i jedziesz od początku.
bartek12421
Dzięki za pomoc.
Nie miałem zielonego pojęcia, że next() zwraca FALSE, kiedy znajdzie się na końcu.
Zrobiłem to tak:
  1. <?
  2. $tablica = array('KOLOR1','KOLOR2','KOLOR3','KOLOR4');
  3. $tablica2 = array ('ODP1','ODP2','ODP3','ODP4','ODP5','ODP6','ODP7','ODP8','ODP9','ODP10');
  4. for($a=1;$a<=count($tablica2);$a++){
  5. print current($tablica)." - ".$tablica2[$a-1]."<br />";
  6. if(!next($tablica)) {reset($tablica);}
  7. }
  8. ?>


Efekt? Zamierzony :]
Kod
KOLOR1 - ODP1
KOLOR2 - ODP2
KOLOR3 - ODP3
KOLOR4 - ODP4
KOLOR1 - ODP5
KOLOR2 - ODP6
KOLOR3 - ODP7
KOLOR4 - ODP8
KOLOR1 - ODP9
KOLOR2 - ODP10
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.