拆分 php 旋转代码


Split a php rotation code

此循环在页面上显示 10 张旋转图像。

<?php
$myImagesList = array (
 'image1.png' ,
  'image2.png' ,
  'image3.png' ,
  'image4.png' ,
  'image5.png' ,
  'image6.png' ,
  'image7.png' ,
  'image8.png' ,
  'image9.png' ,
  'image10.png'
);
shuffle ($myImagesList);
for ($i=0; $i<15; $i++) {
echo '' . $myImagesList[$i] . '';
}
?> 

但是如何将其分为两部分,所以我在页面顶部显示 5 张图片,在页面页脚显示 5 张图像?像这样:

<Body>
<Div id = "site">
<Div id = "header">
 
 
<? php
XXXX XXXX Show 5 images
?>
 
 
</ Div>
<Div id = "content">
Text
</ Div>
<Div id = "footer">
 
 
<? php
XXXX XXXX Show 5 images
?>
 
 
</ Div>
</ Div>

您可以简单地更改迭代起点:

<?php
$myImageList = [
    'image1.png',
    'image2.png',
    'image3.png',
    'image4.png',
    'image5.png',
    'image6.png',
    'image7.png',
    'image8.png',
    'image9.png',
    'image10.png',
];
shuffle($myImageList);

然后在您的 HTML 中:

<div id="header">
<?php for ($i = 0; $i < 5; $i++) echo $myImagesList[$i] . '<br>'; ?>
</div>
<div id="footer">
<?php for ($i = 5; $i < 10; $i++) echo $myImagesList[$i] . '<br>'; ?>
</div>

带有辅助函数的数组切片。

<?php
$myImageList = [
    'image1.png',
    'image2.png',
    'image3.png',
    'image4.png',
    'image5.png',
    'image6.png',
    'image7.png',
    'image8.png',
    'image9.png',
    'image10.png',
];
function display_images(array $images, $base_path) {
?>
    <?php foreach($images as $image) { ?>
        <img src="<?php echo $base_path . '/' . $image ?>">
    <?php } ?>
<?php
}

shuffle($myImageList);
display_images(array_slice($myImageList, 0, 5), '/foo');
display_images(array_slice($myImageList, 5, 5), '/foo');

如果您希望在顶部精确地显示一半,在底部显示一半,而不管$myImagesList中有多少件,那么您可以这样做:

<?php
$myImagesList = array (
 'image1.png' ,
  'image2.png' ,
  'image3.png' ,
  'image4.png' ,
  'image5.png' ,
  'image6.png' ,
  'image7.png' ,
  'image8.png' ,
  'image9.png' ,
  'image10.png'
);
shuffle ($myImagesList);
$firstHalf = array_slice($myImagesList, 0, round((count($myImagesList) / 2), 0, PHP_ROUND_HALF_UP));
$secondHalf = array_slice($myImagesList, round((count($myImagesList) / 2), 0, PHP_ROUND_HALF_UP));
// First half
foreach($firstHalf as $v)
{
    echo $v;
}
// Second half
foreach($secondHalf as $v)
{
    echo $v;
}

如果$myImagesList中存在奇数个元素,则前半部分将比下半部分多显示一个图像。