1、 {$smarty.foreach.loop.iteration} // 获取当前循环次数,以1开始
2、增加一个整型变量,循环执行一次则该变量则计数一次,变量的值就是当前循环的次数。代码如下:
<html>
<body>
<?php
$arr=array("one", "two", "three");
$i=0;
foreach ($arr as $value)
{
echo "value: " . $value . "<br />";
i++
}
?>
</body>
</html>
扩展资料:
foreach 仅能用于数组,当试图将其用于其它数据类型或者一个未初始化的变量时会产生错误。有两种语法,第二种比较次要但却是第一种的有用的扩展。
foreach (array_expression as $value) statement
第一种格式遍历给定的 array_expression 数组。每次循环中,当前单元的值被赋给 $value 并且数组内部的指针向前移一步(因此下一次循环中将会得到下一个单元)。
foreach (array_expression as $key => $value) statement
第二种格式做同样的事,只除了当前单元的键名也会在每次循环中被赋给变量 $key。
自php 5 起,还可能遍历对象。注: 当 foreach 开始执行时,数组内部的指针会自动指向第一个单元。这意味着不需要在 foreach 循环之前调用 reset()。
提供给你一个完整的测试文档:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>获取foreach当前循环次数</title>
</head>
<body>
<?php
$arr = array(1, 22, 333, 4444 ,55555, 666666);
$i=0; //建立一个标志位变量
foreach($arr as $k=>$v){
$i++; //每循环一次,将这个标志位进行递增;
echo '当前循环第:<b>'. $i . '</b>次,键为:<b>' . $k . '</b>, 值为:<b>' . $v . '</b><hr/>' ;
}
echo '总计循环了<b>' . $i . '</b>次。';
?>
</body>
</html>
foreach遍历数组和对象时,并不会返回数组的下标,而且数组下标并不能体现循环次数,因为下标可以不连续。
如果需要获取循环次数,要自己定义变量。
例如:
$i = 0;
$arr = array(1, 2, 3, 4);
foreach ($arr as $value) {
$i++;
echo '第'.$i.'次循环:'.$value;
}