2016-07-09 137 views
-2

我的代码导致图像在页面中随机出现。 但是如何在这些图像之间插入“元素”(在我的情况下是div)?将“元素”插入数组的其他“元素”(循环)php

<?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

content

image4.png image1.png

+1

如果您只想显示两个,为什么'$ i <4'?显示两个,然后再次启动循环,或者检查$ i是否为2并显示您的额外内容。 – rjdown

回答

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" />'; 

} 

这会给你的内容每节第三次迭代,不管列表的大小。

0

如果你想这两个图像对之间添加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" />'; 
} 
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" />'; 
}