php检查数组索引超出范围

php检查数组索引超出范围,php,arrays,Php,Arrays,考虑以下数组 $a['a'] = 1; $a['b'] = 2; $a['c'] = 3; $a['d'] = 4; 然后我循环数组 foreach( $a as $q => $x ) { # Some operations .... if( isLastElement == false ){ #Want to do some more operation } } 我如何知道当前位置是否为最后一个位置 谢谢 foreach (array_slice($a,

考虑以下数组

$a['a'] = 1;
$a['b'] = 2;
$a['c'] = 3;
$a['d'] = 4;
然后我循环数组

foreach( $a as $q => $x )
{

  # Some operations ....

  if( isLastElement == false  ){ 
     #Want to do some more operation
  }
}
我如何知道当前位置是否为最后一个位置

谢谢

foreach (array_slice($a, 0, -1) as $q => $x) {

}
extraProcessing(array_slice($a, -1));
编辑:

如果要对最后一个元素执行相同的处理,我想第一个
数组\u片
是不必要的。事实上,两者都不是最后一个

foreach ($a as $q => $x) {

}
extraProcessing($q, $x);
循环后最后的元素仍然可用

编辑:

如果要对最后一个元素执行相同的处理,我想第一个
数组\u片
是不必要的。事实上,两者都不是最后一个

foreach ($a as $q => $x) {

}
extraProcessing($q, $x);

循环后最后的元素仍然可用。

您可以使用此功能进行此操作。

您可以使用此功能进行此操作。

获取最后一个元素的键并进行比较

$last_key = end(array_keys($a));

foreach( $a as $q => $x )
{
 # Some operations ....
 if( $q == $last_key){ 
     #Your last element
  }
}

取最后一个元素的键&比较

$last_key = end(array_keys($a));

foreach( $a as $q => $x )
{
 # Some operations ....
 if( $q == $last_key){ 
     #Your last element
  }
}



由于您的数组不是数值索引数组,您可以使用一个整数,该整数递增并与数组的
计数相比较,后者建议使用计数器来标识循环集中的最后一个元素。@user1073122在我的特定要求中不可能。什么是不可能的
count($a)
将返回数组中的元素数,因此可以使用一个初始化为0的整数,然后循环在每个循环中递增该整数,并将其与数组的计数进行比较。您将能够知道何时在最后一个元素上。由于您的数组不是数字索引数组,因此可以使用整数,该整数将递增,并与数组的计数进行比较,它建议使用计数器来标识循环集中的最后一个元素。@user1073122在我的特定要求中,这是不可能的。什么是不可能的
count($a)
将返回数组中的元素数,因此可以使用一个初始化为0的整数,然后循环在每个循环中递增该整数,并将其与数组的计数进行比较。您将能够知道何时在最后一个元素上。您应该检查键,而不是值,因为值不一定是唯一的。您应该检查键,而不是值,因为值不一定是唯一的。
end()
调用必须跳出循环,因为它获取最后一个值并设置指向它的内部指针,而不是检查它。
end()
调用必须跳出循环,因为它获取最后一个值并设置指向它的内部指针,而不是检查它。