跳过foreach循环的第一个条目


skipping first entry of a foreach loop

我想跳过foreach循环的第一个条目,我知道一种方法,但它使用了很多行代码,我想知道是否有更简单的方法:

$i = 0;
foreach($url AS $u) {
    if($i!=0) $cats[check_url($u)] = $u;
    $i++;
}

还有更好的更正式的方式吗?

另一种可能的方法是使用PHP内置的array_shift()函数在循环之前从数组中弹出第一项。

如果您不确定$url数组是如何索引的,那么简单地用unset($url[0])删除index[0]可能会解决问题,也可能不会解决问题。例如,如果$url按关联进行索引,它可能看起来更像这样:

$url['first'] = "a value";
$url['second'] = "some other value";
$url['third'] = "a different value";

为了确定您排除了第一个"索引"元素,无论与之相关的键是什么,您可以使用array_shift(),如下所示:

array_shift($url);

这会弹出第一个元素并重置()数组指针。

在这之后,你可以像往常一样进行你的前臂循环。

如果你有$url的数字键,你可以简单地这样做:

foreach($url AS $k => $u) {
    if($k) $cats[check_url($u)] = $u;
}

但是如果你的数组有非数字键,我认为你拥有的是最好的方法!