如何在数组上进行无限循环


how to make an infinite loop on array

在for子句上循环时,我需要每5次从数组中取出一个项

我的阵列

$myArray = array( 1 => 'element 1',  2 => 'element 2',  3 => 'element 3' );

我的循环

for ($i=1; $i<=50; $i++) {
  echo "echo this each time ";
  if ($i%5 === 0) $myitem = next($myArray);
  echo "echo my array item every 5 times " .$myitem; 
  // but starting again from first if i reach the end of array
}

如果我到达的末尾,我需要获得数组中的第一个项目

我不知道你为什么需要这个,但这样的东西应该可以工作:

$fancyvarname = 0;
for ($i=1; $i<=50; $i++) {
   echo "echo this each time ";
   if ($i%5 == 0){
      $myitem = $myArray[$fancyvarname % count($myArray)];
      $fancyvarname++;
      echo "echo my array item every 5 times " .$myitem; 
   }
}

编辑:你注意到===而不是==了吗?

您可以尝试使用:

if ($i % sizeof($myArray) === 0 ) reset($myArray);
for $i=0; $i<50; $i++) {
    if ($i%5===0) echo "...5 times ".$myArray[$i%count($myArray)];
}

当然,您可以在循环之外使用count()来节省一点cpu时间