在PHP中使用foreach循环时查找数组的最后一个元素

我正在使用一些参数编写SQL查询创建器。 在Java中,通过使用数组长度检查当前数组的位置,可以很容易地从for循环内检测数组的最后一个元素。

for(int i=0; i< arr.length;i++){
     boolean isLastElem = i== (arr.length -1) ? true : false;        
}

在PHP中,它们具有非整数索引来访问数组。 所以你必须使用foreach循环迭代一个数组。 当你需要做出一些决定(在我的情况下追加或/和参数,同时构建查询)时,这会变得有问题。

我确信必须有一些标准的做法。

你如何在PHP中解决这个问题?


这听起来像你想要这样的东西:

$numItems = count($arr);
$i = 0;
foreach($arr as $key=>$value) {
  if(++$i === $numItems) {
    echo "last index!";
  }
}    

这就是说,你不用 - 要 - 在PHP中使用foreach遍历一个“数组”。


您可以使用end(array_keys($array))获取数组最后一个键的值,并将其与当前键进行比较:

$last_key = end(array_keys($array));
foreach ($array as $key => $value) {
    if ($key == $last_key) {
        // last element
    } else {
        // not last element
    }
}

为什么这么复杂?

foreach($input as $key => $value) {
    $ret .= "$value";
    if (next($input)==true) $ret .= ",";
}

这将在除了最后一个值之外的每个值之后添加一个!

链接地址: http://www.djcxy.com/p/52989.html

上一篇: Find the last element of an array while using a foreach loop in PHP

下一篇: Should I use an Iterator or a forloop to iterate?