首页 文章

在数组(循环)php 的其他“元素”中插入“元素”

提问于
浏览
-2

我的代码导致图像在页面中随机出现。但是如何在这些图像之间插入一个“元素”(在我的例子中将是一个 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

3 回答

  • 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

    你会想要这样的东西......

    $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

    使用最易读的解决方案 - 不会让您跌倒的解决方案,并在更改某些内容时稍后进行调试。

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

相关问题