Вставить «элемент» среди других «элементов» массива (loop) php

мой код заставляет изображения появляться случайным образом на странице. Но как вставить «элемент» (в моем случае будет div) между этими изображениями?

<?php $myImagesList = array ( 'image1.png', 'image2.png', 'image3.png', 'image4.png' ); shuffle ($myImagesList); for ($i=0; $i<4; $i++) { echo '<img src="/image/' . $myImagesList[$i] . '" width="200" height="140" border="0" />'; } ?> 

Пример:

Исходный код отображает изображения следующим образом:

image3.png image4.png image2.png image1.png

Страница обновления F5

image2.png image1.png image4.png image3.png

Страница обновления F5

image4.png image2.png image3.png image1.png

Мне это нужно было так:

image2.png image1.png

содержание

image4.png image3.png

Страница обновления F5

image4.png image2.png

содержание

image1.png image3.png

Страница обновления F5

image2.png image3.png

содержание

image4.png image1.png

Если вы хотите добавить div (контент) между этими двумя парами изображений – добавьте дополнительное условие в свой цикл:

 ... for ($i=0; $i<4; $i++) { if ($i == 1) echo '<div>some content ...</div>'; echo '<img src="/image/' . $myImagesList[$i] . '" width="200" height="140" border="0" />'; } 

Вы хотели бы что-то вроде этого …

  $myImagesList = array ( 'image1.png', 'image2.png', 'image3.png', 'image4.png' ); shuffle ($myImagesList); $i = 0; foreach ($myImagesList as $img) { $i++; if ($i % 3 === 0) { /* show content */ } echo '<img src="/image/' . $img . '" width="200" height="140" border="0" />'; } 

Это даст вам раздел контента каждую третью итерацию, независимо от размера списка.

Пойдите с самым читаемым решением – тем, которое не заставит вас упасть и отлаживать позже, когда что-то меняет.

 $splitAtNumber = 2; // or dynamically use count($myImagesList) / 2 or .... // output first part of the array for ($i = 0; $i < $splitAtNumber; $i++) { echo '<img src="/image/' . $myImagesList[$i] . '" width="200" height="140" border="0" />'; } // Output your content echo 'content'; // Output second part of the array for ($i = splitAtNumber; $i < count($myImagesList); $i++) { echo '<img src="/image/' . $myImagesList[$i] . '" width="200" height="140" border="0" />'; }