如何在 PHP 中的特定索引处启动 foreach 循环

php
2022-08-30 08:45:25

我正在编写一个不是从第0个索引开始,而是从数组的第一个索引开始。有没有办法抵消循环的起点?foreach


答案 1

保持简单。

foreach ($arr as $k => $v) {
   if ($k < 1) continue;
   // your code here.
}

请参阅手册中的继续控制结构。


答案 2

Foreach 将重置阵列:

注意: 当 foreach 首次开始执行时,内部数组指针将自动重置为数组的第一个元素。这意味着您不需要在 foreach 循环之前调用 reset()。

要么使用循环(仅当这不是关联数组时)for

$letters = range('a','z');
for($offset=1; $offset < count($letters); $offset++) {
    echo $letters[$offset];
}

或循环(可以是任何数组)while

$letters = range('a','z');
next($letters);
while($letter = each($letters)) {
    echo $letter['value'];
}

或使用 LimitIterator

$letters = new LimitIterator(new ArrayIterator(range('a','z')), 1);
foreach($letters as $letter) {
    echo $letter;
}

这允许您指定开始偏移量并通过构造函数计数。

以上所有内容都将输出字母 b 到 z 而不是 a 到 z


推荐