在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时间