PHP:如何跳过foreach循环中的最后一个元素
我有一个对象数组,php中的任何数组。PHP:如何跳过foreach循环中的最后一个元素,php,loops,foreach,Php,Loops,Foreach,我有一个对象数组,php中的任何数组。 如何跳过foreach迭代中的最后一个元素?您试图做的事情将破坏foreach循环的目的。这意味着在整个阵列中循环,使我们的工作变得简单 $count = count($array); $i=0; foreach ($arr as &$value) { $i++; if($i==($count-1)) { echo 'skip'; } else { echo $value;
如何跳过foreach迭代中的最后一个元素?您试图做的事情将破坏foreach循环的目的。这意味着在整个阵列中循环,使我们的工作变得简单
$count = count($array);
$i=0;
foreach ($arr as &$value)
{
$i++;
if($i==($count-1))
{
echo 'skip';
}
else
{
echo $value;
}
}
例如:您可以使用php中的COUNT函数获取数组大小,然后可以使用for循环并将限制设置为arraysize-2,因此最后一个数组将被忽略如果您不想用pop删除最后一个数组条目,可以像这样跳过它
$array = array('v1','v2','v3',...)
$counter = 1;
foreach($array as $value)
{
//do your thing in loop
if($counter == count($array)) continue; // this will skip to next iteration if last element encountered.
$counter++;
}
使用一个变量来跟踪到目前为止迭代了多少个元素,并在循环结束时剪切循环:
$count = count($array);
foreach ($array as $key => $val) {
if (--$count <= 0) {
break;
}
echo "$key = $val\n";
}
有多种方法可以做到这一点 如果数组是顺序零索引数组,则可以执行以下操作:
for( $i = 0, $ilen = count( $array ) - 1; $i < $ilen; $i++ )
{
$value = $array[ $i ];
/* do something with $value */
}
$i = 0;
$ilen = count( $array );
foreach( $array as $key => $value )
{
if( ++$i == $ilen ) break;
/* do something with $value */
}
如果$element==end($myarray)中断
在foreach@sashkello如果数组中有重复的元素,或者当有元素的计算结果与上一个元素的值相同时,这将产生不希望的结果。那么,为什么在数组的末尾有一个额外的元素呢?@fireyedboy啊,是的,您可以在array\u keys
上使用end
。如果键是字符串,则不起作用。@jack okk than我正在编辑我的答案。)简单地这样做:为了($i=0;$ii不知道为什么感觉这是一个糟糕的问题,但这确实是我要问的。我想遍历所有内容,但排除数组中的最后一个元素。。Thanks@muffin问题是为什么最后一个元素应该被排除在外…如果这个值有什么特别的地方,也许它是不可能。这两种方法都很好,没有错误……非常简单。谢谢。array\u slice($array,0,-1);
这也是一个很好的答案。谢谢:)@不客气。从其他答案中可以看出,有很多方法可以实现您的目标。for循环中有一个输入错误。应该是分号而不是逗号。@erfan它不是输入错误。我正在for循环的第一部分初始化两个变量(用逗号分隔)。for(expr1;expr2;expr3)中的每个表达式can.@DecentDabbler噢,哇……我现在觉得自己很笨XD
$i = 0;
$ilen = count( $array );
foreach( $array as $key => $value )
{
if( ++$i == $ilen ) break;
/* do something with $value */
}