У меня есть эти массивы внутри контроллера:
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-го элемента. У меня нет проблем с изображениями, потому что они начинаются там, где я хочу. Есть ли способ обойти это?
Согласно 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}, он работает. Но Думаю, неправильно создавать другой массив для того же набора элементов. Есть еще идеи?
Добро пожаловать, @DaveMoreno. Я забыл о возможности того, что ваш массив $ images может иметь другую длину. Я согласен с тем, что создание второго массива - не идеальный вариант, но другое решение мне пока не приходит в голову. Прости! Я надеюсь, что кто-то еще может указать вам лучший вариант.
Я очень надеюсь, что кто-нибудь сможет мне помочь с этой проблемой. Заранее спасибо.