此循环在页面上显示 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
中存在奇数个元素,则前半部分将比下半部分多显示一个图像。