首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在数组迭代期间检查当前元素是否为最后一个元素

在数组迭代期间检查当前元素是否为最后一个元素
EN

Stack Overflow用户
提问于 2011-05-23 09:42:49
回答 8查看 119.1K关注 0票数 83

请帮我把这个伪代码翻译成真正的php代码:

 foreach ($arr as $k => $v)
    if ( THIS IS NOT THE LAST ELEMENT IN THE ARRAY)
        doSomething();

编辑:数组可以有数字键或字符串键

EN

回答 8

Stack Overflow用户

发布于 2014-10-31 19:22:59

这对我来说总是管用的

foreach($array as $key => $value) {
   if (end(array_keys($array)) == $key)
       // Last key reached
}

编辑30/04/15

$last_key = end(array_keys($array));
reset($array);

foreach($array as $key => $value) {
  if ( $key == $last_key)
      // Last key reached
}

为了避免@Warren Sergent提到的E_STRICT警告

$array_keys = array_keys($array);
$last_key = end($array_keys);
票数 27
EN

Stack Overflow用户

发布于 2011-05-23 09:54:53

$myarray = array(
  'test1' => 'foo',
  'test2' => 'bar',
  'test3' => 'baz',
  'test4' => 'waldo'
);

$myarray2 = array(
'foo',
'bar',
'baz',
'waldo'
);

// Get the last array_key
$last = array_pop(array_keys($myarray));
foreach($myarray as $key => $value) {
  if($key != $last) {
    echo "$key -> $value\n";
  }
}

// Get the last array_key
$last = array_pop(array_keys($myarray2));
foreach($myarray2 as $key => $value) {
  if($key != $last) {
    echo "$key -> $value\n";
  }
}

因为array_poparray_keys创建的临时数组上工作,所以它根本不修改原始数组。

$ php test.php
test1 -> foo
test2 -> bar
test3 -> baz
0 -> foo
1 -> bar
2 -> baz
票数 14
EN

Stack Overflow用户

发布于 2018-02-24 21:14:18

为什么不用这个非常简单的方法:

$i = 0; //a counter to track which element we are at
foreach($array as $index => $value) {
    $i++;
    if( $i == sizeof($array) ){
        //we are at the last element of the array
    }
}
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6092054

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档