2016-07-11 50 views
0

此循环显示页面上旋转的10幅图像。拆分php旋转代码

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

有没有这样的运气? – MonkeyZeus

+0

[在网站的其他地方继续循环]可能的重复(http://stackoverflow.com/questions/38296947/continue-the-loop-elsewhere-in-the-site) – chris85

回答

0

您可以简单地改变你的迭代起点:

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

如果您想显示在​​顶部正好一半和一半的底部,无论有多少件在$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中存在奇数个元素,那么前半部分将显示比下半部分多一个图像。

0

带辅助函数的数组切片。

<?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');