Получение данных из массива, начиная с определенного n-го элемента в Laravel

У меня есть эти массивы внутри контроллера:

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

и это, вид изнутри:

1-е содержание

@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

2-й контент (где я хочу начать с определенного 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 во 2-м контенте возвращаются или возвращаются к 1-му элементу, где элемент должен начинаться с 3-го элемента. У меня нет проблем с изображениями, потому что они начинаются там, где я хочу. Есть ли способ обойти это?

Я очень надеюсь, что кто-нибудь сможет мне помочь с этой проблемой. Заранее спасибо.

DaOneRom 18.12.2018 03:06
Структурированный массив Numpy
Структурированный массив Numpy
Однако в реальных проектах я чаще всего имею дело со списками, состоящими из нескольких типов данных. Как мы можем использовать массивы numpy, чтобы...
T - 1Bits: Генерация последовательного массива
T - 1Bits: Генерация последовательного массива
По мере того, как мы пишем все больше кода, мы привыкаем к определенным способам действий. То тут, то там мы находим код, который заставляет нас...
Что такое деструктуризация массива в JavaScript?
Что такое деструктуризация массива в JavaScript?
Деструктуризация позволяет распаковывать значения из массивов и добавлять их в отдельные переменные.
0
1
58
1

Ответы 1

Согласно array_slice документ вы случайно сбросили индекс массива до нуля. Вам нужен дополнительный четвертый параметр (логическое значение), чтобы указать, что вы не хотите, чтобы этот сброс происходил, например:

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

От http://php.net/manual/en/function.array-slice.php:

preserve_keys

Note that array_slice() will reorder and reset the integer array indices by default. You can change this behaviour by setting preserve_keys to TRUE. String keys are always preserved, regardless of this parameter.

Спасибо. @ Вирджиния. В какой-то момент это может быть правдой, но код, который вы дали мне, не сработал, он возвращает ошибку, в которой говорится {"Неопределенное смещение: 17}. Если я создам другой набор массивов, скажем {$ rep_titles2}, он работает. Но Думаю, неправильно создавать другой массив для того же набора элементов. Есть еще идеи?

DaOneRom 17.12.2018 09:32

Добро пожаловать, @DaveMoreno. Я забыл о возможности того, что ваш массив $ images может иметь другую длину. Я согласен с тем, что создание второго массива - не идеальный вариант, но другое решение мне пока не приходит в голову. Прости! Я надеюсь, что кто-то еще может указать вам лучший вариант.

Virginia 17.12.2018 09:40

Другие вопросы по теме