跳过foreach循环的第一个条目

时间:2015-12-29 23:46:39

标签: php arrays loops foreach

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

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

有更好的官方方式吗?

2 个答案:

答案 0 :(得分:1)

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

如果您不确定如何将$ url数组编入索引,只需使用unset($url[0])删除索引[0]可能会或可能不会解决问题。例如,如果通过关联索引$ url,它可能看起来更像是:

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

要确定您排除第一个“索引”元素,无论与之关联的键是什么,您都可以像这样使用array_shift():

array_shift($url);

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

在此之后,您可以像平常一样执行foreach循环。

答案 1 :(得分:0)

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

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

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