0

考虑以下数组。

$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
  }
}

我怎么知道当前位置是last不是?

谢谢。

4

4 回答 4

3

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

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

foreach( $a as $q => $x )
{
 # Some operations ....
 if( $q == $last_key){ 
     #Your last element
  }
}
于 2013-03-12T05:29:20.487 回答
0
foreach (array_slice($a, 0, -1) as $q => $x) {

}
extraProcessing(array_slice($a, -1));

编辑:

array_slice如果您想对最后一个元素进行相同的处理,我想第一个不是必需的。其实两者都不是最后一个。

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

}
extraProcessing($q, $x);

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

于 2013-03-12T05:27:59.950 回答
0

您可以使用该end()功能进行此操作。

于 2013-03-12T05:28:58.530 回答
0
<?php
$a['a'] = 1;
$a['b'] = 2;
$a['c'] = 3;
$a['d'] = 4;

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

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

  # Some operations ....

  if( $endkey == $q  ){ 
     #Want to do some more operation
     echo 'last key = '.$q.' and value ='.$x;
  }
}
?>
于 2013-03-12T05:29:24.573 回答