Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如果总数未知,如何获得foreach的最后一次迭代_Php_Arrays_Foreach - Fatal编程技术网

Php 如果总数未知,如何获得foreach的最后一次迭代

Php 如果总数未知,如何获得foreach的最后一次迭代,php,arrays,foreach,Php,Arrays,Foreach,我想在foreach循环的最后一次迭代中回显一个变量,仅在循环内满足条件时计数 我意识到我可以在foreach语句之外echo$var,但我真的想在foreach语句中找到一种方法来实现这一点。这是一个粗略的例子,完全有道理,但我真正想做的是找出foreach语句中的最后一次迭代 以下是我尝试过的: $var = "end"; foreach ($options as $option => $icon) { if (strpos($check[0], $opt

我想在
foreach
循环的最后一次迭代中回显一个变量,仅在循环内满足条件时计数

我意识到我可以在
foreach
语句之外
echo$var
,但我真的想在
foreach
语句中找到一种方法来实现这一点。这是一个粗略的例子,完全有道理,但我真正想做的是找出
foreach
语句中的最后一次迭代

以下是我尝试过的:

$var = "end";
foreach ($options as $option => $icon) {
     if (strpos($check[0], $option) !== false) {            
          echo $icon;
     }
     if (end($options)){
          echo $var;
     }                              
} 
$icon
存在时,我也尝试设置一个计数器,但由于总数未知,因此没有正常工作


如何执行此操作?

如果数组不是空的,
end
将始终返回最后一个元素,而不管数组指针指向哪个元素

我看不出这样做的正当理由,但您可以查看是否没有
next
元素
foreach
将在每次迭代中推进数组指针,因此
next
将尝试获取下一个指针,如果它位于最后一个元素上,它将失败:

$var = "end";
foreach ($options as $option => $icon) {
     if (strpos($check[0], $option) !== false) {            
          echo $icon;
     }
     if (!next($options)){
          echo $var;
     }                              
} 

放入
echo$var}
之后的code>loop@RiggsFolly我明白了。我不应该用一个简单的例子来说明这是完全有道理的。但我真正想做的是找出如何计算foreach语句中的最后一次迭代。
end($options)
只返回
$options
数组的最后一个元素,即它将始终
echo$var
(除非
$options
数组为空,但在这种情况下整个
foreach()
将不运行)。不确定要执行的操作的用例,但您可以使用
array\u key\u last()
来实现您的目标-