Pętla po wszystkich elementach tablicy

0

Witam,

Chcę wykonać pętlę po wszystkich elementach tablicy. Jednak nie chcę zaczynać od elementu z indeksem 0, ale dajmy na to od tego z indeksem 3. Napisałem więc sobie taki skrypt:

<?php 
$tab = array(1,2,3,4,5,6,7,8);
$i=3;
do
	{
	echo 'tab='.$tab[$i] .'<br/>';
	$i++;
	$i=($i%(count($tab)));
	}
while( $i != 3 ) 
?>

I wszystko ładnie działa. Zastanawia mnie jednak, czy da się to wykonać prościej?

1

Najłatwiej to chyba tak:

foreach ($tablica as $index => $value)
{
 if ($index < 3) continue;
 //tutaj kod, który ma się wykonać, jeżeli $index > 3
}
1

powyższy kod jest nieefektywny - nie lepiej zrobić zwykłe for od 3 do końca?

Co do tematu to moja propozycja:

<?php 
$tab = array(1,2,3,4,5,6,7,8);
$k=3;
$n=count($tab);
for ($i=0; $i < $n; $i++)
	echo 'tab='.$tab[($i+$k)%$n] .'<br/>';	
?>
1

A takie coś (kod w Scali, ale może ktoś wie jak przerobić na PHP):

for (x <- tab.drop(3) ++ tab.take(3)) {
  // element w x
}
0

Dzięki za odpowiedzi panowie. Chciałem to od początku zrobić for'em, ale nie mogłem sobie poradzić z pomijaniem jednego elementu. Wszystko przez to, że modulo robiłem w warunku, a nie w ciele funkcji.

1 użytkowników online, w tym zalogowanych: 0, gości: 1