【问题标题】:foreach outputs two arrays skip first [duplicate]foreach 输出两个数组首先跳过[重复]
【发布时间】:2012-12-18 23:07:29
【问题描述】:

可能重复:
how to skip elements in foreach loop

我有以下 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) 时它就不会被打印出来?

【问题讨论】:

    标签: php arrays foreach


    【解决方案1】:

    使用带有递增索引说明符的standard for loop 并跳过第一个元素。

    for($i = 1; $i < count($documents); $i++) {
      print_r($documents[i]);
    }
    

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • 感谢所有回答。这最符合我的目的。
      【解决方案3】:

      最简单的方法是完全删除第一个数组,但我猜你不能这样做。不用担心 - 这应该可以满足您的需求:

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

      编辑:我创建了a test case for you on Codepad.org

      【讨论】:

        猜你喜欢
        • 2023-03-17
        • 1970-01-01
        • 2019-05-14
        • 1970-01-01
        • 2011-11-06
        • 2020-10-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多