1

可能重复:
如何在 foreach 循环中跳过元素

我有以下foreach:

foreach($documents as $document): 
    print_r($document);
endforeach; 

输出以下内容:

Array
(
    [num] => 2
)
Array
(
    [0] => Array
        (
            [name] => Batman
            [url] => http://batman.com
        )

    [1] => Array
        (
            [name] => Superman
            [url] => http://superman.com
        )

)

第一个包含 [num] => 2 的数组,我不想在打印结果时在我的 foreach 中使用。

但是我如何摆脱那个数组,这样当我使用 write print_r($document) 时它就不会被打印出来?

4

3 回答 3

3

使用带有递增索引说明符的标准for循环并跳过第一个元素。

for($i = 1; $i < count($documents); $i++) {
  print_r($documents[i]);
}
于 2013-01-04T13:47:05.453 回答
1

与您保持一致,foreach您可以使用continue

$first = true;

foreach($documents as $document) {
    if($first) {
        $first = false;
        continue;
    }

    print_r($document);
}
于 2013-01-04T13:58:21.910 回答
0

最简单的方法是完全删除第一个数组,但我猜你不能这样做。不用担心 - 这应该让你涵盖:

for( $i = 1; $i < count($documents); $i++ ):
   print_r($documents[$i]);
endfor;

编辑:我在 Codepad.org 上为您创建了一个测试用例

于 2013-01-04T13:48:40.823 回答