如何在第一个结果处跳出 foreach 循环并从第二个结果继续循环

How to break out of the foreach loop at first result and continue loop from the 2nd result

我添加了此 foreach 用于打印图库图像。但我不想在图库图片中打印图库缩略图。

所以我尝试计算所有可用图像并初始化另一个变量 $i=0。因此,如果 $i == 0,则意味着第一张图像是缩略图,因此它应该跳出 foreach 循环并重新启动循环以打印第二张图像。

代码如下:

@php
    $i = 0;
    $len = count($gallery->galleryImages->where( 'gli_dimension', 'fullsize' ));
@endphp
@foreach( $gallery->galleryImages->where( 'gli_dimension', 'fullsize' ) as $img )
    @if ($i == 0)
        @php
           $i++;
           break;
        @endphp
    @endif
    <div style="display: none;">
        <a href="{{ \Illuminate\Support\Facades\Storage::url( $img['gli_path']) }}"
            data-fancybox="images-preview{{$gallery->gly_id}}"
            data-width="1500" data-height="1000"
            data-thumb="{{ \Illuminate\Support\Facades\Storage::url( $img['gli_path'] ) }}"
            data-caption="{{ $gallery->gly_title }}"></a>
    </div>
@endforeach

但现在的问题是,它打印出的是缩略图,而不是图库图像。

但是,它应该打印除缩略图之外的所有图库图像。

那么如何在第一个结果处跳出 foreach 循环并正确地从第二个结果继续循环呢?

我有更好的解决方案给你。 使用新列 'image_type' 将数据库中的缩略图图像和画廊图像分开,将值设置为 0,其中图像是缩略图,并将值设置为 1,其中图像是所有其他画廊图像。 因此,您可以通过在 sql 查询中应用条件,例如 'select * from table where image_type = 1'

,轻松获取所有图库图像

laravel provides loop variables

另外当你使用break时它会跳出一个循环。所以使用 continue 而不是 break

break and continue

      @php
          $i = 0;
          $len = count($gallery->galleryImages->where( 'gli_dimension', 'fullsize' ));
      @endphp
      @foreach( $gallery->galleryImages->where( 'gli_dimension', 'fullsize' ) as $img )
          @if ($loop->first)
              @php
                 $i++;
                 continue;
              @endphp
          @endif
          <div style="display: none;">
              <a href="{{ \Illuminate\Support\Facades\Storage::url( $img['gli_path']) }}"
                  data-fancybox="images-preview{{$gallery->gly_id}}"
        data-width="1500" data-height="1000"
        data-thumb="{{ \Illuminate\Support\Facades\Storage::url( $img['gli_path'] ) }}"
                  data-caption="{{ $gallery->gly_title }}"></a>
          </div>
      @endforeach