Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Jak uzyskać następną wartość w foreach
rafalp
post
Post #1





Grupa: Zarejestrowani
Postów: 224
Pomógł: 18
Dołączył: 4.02.2003
Skąd: Częstochowa

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


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?

Ten post edytował rafalp 8.09.2010, 13:29:28
Go to the top of the page
+Quote Post
wookieb
post
Post #2





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Nie uzyskasz następnej wartości w foreach. Pracuje na kopii tablicy. W takim przypadku musisz użyć iteratorów.
Go to the top of the page
+Quote Post
rafalp
post
Post #3





Grupa: Zarejestrowani
Postów: 224
Pomógł: 18
Dołączył: 4.02.2003
Skąd: Częstochowa

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


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() ?
Go to the top of the page
+Quote Post
masiakla
post
Post #4





Grupa: Zarejestrowani
Postów: 80
Pomógł: 17
Dołączył: 4.09.2010
Skąd: far far away

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


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. }


Ten post edytował masiakla 8.09.2010, 13:35:59
Go to the top of the page
+Quote Post
rafalp
post
Post #5





Grupa: Zarejestrowani
Postów: 224
Pomógł: 18
Dołączył: 4.02.2003
Skąd: Częstochowa

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


Dzięki @masiakla, druga metoda zadziałała:)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 18.09.2025 - 07:43