Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Jak uzyskać następną wartość w foreach
Forum PHP.pl > Forum > Przedszkole
rafalp
Jak w temacie. Mam:
  1. <?php foreach ($pages as $page): ?>
  2. <?php
  3. $next = next($pages);
  4. prev($pages);
  5. ?>
  6. <?php endforeach; ?>


Ale otrzymuje zawsze stały wynik.. czy coś przeoczyłem?
wookieb
Nie uzyskasz następnej wartości w foreach. Pracuje na kopii tablicy. W takim przypadku musisz użyć iteratorów.
rafalp
Problem w tym że indexy mam nie po kolei (prawie jak asocjacyjna tylko ze jako wart liczbowe no ale nie po kolei).
Kiedys stosowano starą metodę wyswietlania tablic (jak nie było foreach-a jeszcze) tylko nie pamietam skladni (while? + jakas funkcja). Pamieta to ktos? Czy wtedy mozna by uzyc next() ?
masiakla
Jeśli masz indeksy w postaci liczb, możesz zrobić tak:
  1. foreach($pages as $ind => $page){
  2. $next = $pages[++$ind];
  3. }


Inna metoda to eachowanie po kluczach jako wartościach:
  1. $keys = array_keys($pages);
  2. foreach($keys as $ind => $key){
  3. $next = $pages[$keys[++$ind]];
  4. }
rafalp
Dzięki @masiakla, druga metoda zadziałała:)
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.