一个独特的方法是颠倒数组,然后循环。这将适用于非数字索引数组:
$items = array(
'one' => 'two',
'two' => 'two',
'three' => 'three'
);
$backwards = array_reverse($items);
$last_item = NULL;
foreach ($backwards as $current_item) {
if ($last_item === $current_item) {
// they match
}
$last_item = $current_item;
}
如果你仍然对使用当前和下一个函数感兴趣,你可以这样做:
$items = array('two', 'two', 'three');
$length = count($items);
for($i = 0; $i < $length - 1; ++$i) {
if (current($items) === next($items)) {
// they match
}
}
#2可能是最好的解决方案。注意,$ i < $ length - 1;将在比较数组中的最后两个项后停止循环。我把这个在循环中是显式的例子。你应该计算$ length = count($ items) - 1;