将数组作为参考传递时移动指针

时间:2015-10-31 19:17:17

标签: php arrays foreach

当数组作为参考传递时,如何在foreach语句中向前或向后移动指针:

foreach($array as $key => &$val){

   if($condition1 == true) **set pointer to previous element**
    else **set pointer to previous to previous element**;

   if($condition2 == true) **set pointer to next element**
    else **set pointer to next to next element**;
}

Edit1:如果我使用ArrayIterator,我必须更改许多代码,我想避免这些代码。

1 个答案:

答案 0 :(得分:0)

没有其他简单的解决方案我最终修改了代码以实现ArrayIterator类并更改了程序逻辑

$obj = new ArrayObject( $arrayName );
$it = $obj->getIterator();
foreach ($it as $key=>&$val){
  if(condition1){
    $it->offsetSet($it->key()+1,$arrayName[$key+2]);
  }
}