从数组中检索数据,从Laravel中的第n个特定项开始

时间:2018-12-17 06:29:19

标签: arrays laravel loops foreach

我在Controller内有以下数组:

Public function home(){
     $images = [
          'img/image1.jpg',
          'img/image2.jpg',
          'img/image3.jpg',
          'img/image4.jpg',
          'img/image5.jpg',
          'img/image6.jpg'
     ];
     $rep_titles = [
          '外国美女路亚鲈鱼图片合集',
          '对人类有威胁的那些怪鱼 高清钓鱼图片',
          '那些被钓到的长牙的鱼 高清图片',
          '那些钓友去年钓上的巨物 高清图片',
          '垂钓图片 那些痴迷的美女',
          '冒雨征战秘密基地收获鳊鱼大板鲫',
     ],
}

内部视图:

1ST内容

@foreach (array_slice($images,0,3) as $keyIndex => $image)
     <div class="r-c-collection-container">
          <div class="img-content">
               <img src="{{ asset( $image ) }}" alt="{{ $image }}">
          </div>
          <div class="r-c-content">
               <a href="#" class="title">{{$rep_titles[$keyIndex]}}</a>
          </div>
     </div>
@endforeach

第二个内容(我想从数组中的第n个特定项目开始,具体是第3个)

@foreach (array_slice($images,3,3) as $keyIndex => $image)
     <div class="r-c-collection-container">
          <div class="img-content">
               <img src="{{ asset( $image ) }}" alt="{{ $image }}">
          </div>
          <div class="r-c-content">
               <a href="#" class="title">{{$rep_titles[$keyIndex]}}</a>
          </div>
     </div>
@endforeach

我的问题是,第二个内容上的项目$rep_titles返回或循环回到第一个项目,该项目应从第三个项目开始。我对图像没有问题,因为它从我想要的位置开始。有办法解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

根据array_slice doc,您无意中将数组索引重置为零。您需要一个额外的第四个参数(一个布尔值)来指示您不希望发生这种复位,例如:

@foreach (array_slice($images, 3, 3, true) as $keyIndex => $image) {
    // rest of your code
}

来自http://php.net/manual/en/function.array-slice.php

  

保留键

     

请注意,默认情况下array_slice()将重新排序并重置整数数组索引。您可以通过将preserve_keys设置为TRUE来更改此行为。不管此参数如何,始终保留字符串键。