当数组作为参考传递时,如何在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
,我必须更改许多代码,我想避免这些代码。
答案 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]);
}
}