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

2022-08-30 06:13:23

我正在使用一些参数编写SQL查询创建器。在 Java 中,只需检查数组位置与数组长度,就很容易从 for 循环内部检测数组的最后一个元素。

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

在 PHP 中,它们具有非整数索引来访问数组。因此,您必须使用 foreach 循环遍历数组。当您需要做出一些决定时(在我的情况下,在构建查询时附加or/和参数),这就会成为问题。

我相信一定有某种标准的方法可以做到这一点。

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


答案 1

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

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

话虽如此,您不必在php中使用“数组”进行迭代。foreach


答案 2

您可以使用 获取数组最后一个键的值,并将其与当前键进行比较: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
    }
}

推荐