2015-11-23 23 views
1

我有一個頁面上有很多照片。我打算使用shuffle()來洗牌;使用Shuffle();與所有照片

但你必須使用它。

$images = array 
(
'/images/carousel-1.jpg', 
'/images/carousel-2.jpg', 
'/images/carousel-3.jpg', 
'/images/carousel-4.jpg', 
'/images/carousel-5.jpg', 
'/images/carousel-6.jpg', 
); 

shuffle($images); // the magic 

foreach ($images as $image) 
{ 
echo '<div class="image-entry">'; 
echo "\t" . '<img src="' . $image . '" />'; 
echo '</div>'; 
} 

而HTML;

<div class="image-entry"> 
     <img src="/images/carousel-1.jpg" /> 
    </div> 
    <div class="image-entry"> 
     <img src="/images/carousel-2.jpg" /> 
    </div> 
    <div class="image-entry"> 
     <img src="/images/carousel-3.jpg" /> 
    </div> 
    <div class="image-entry"> 
     <img src="/images/carousel-4.jpg" /> 
    </div> 
    <div class="image-entry"> 
     <img src="/images/carousel-5.jpg" /> 
    </div> 
    <div class="image-entry"> 
     <img src="/images/carousel-6.jpg" /> 
    </div> 

(這可能會持續數百張照片)

而不是做一個陣列爲每一個一個,有沒有一種方法,我可以在很短的代碼中調用了所有的人?

回答

0

您可以使用:

$images = glob('/images/carousel-*.jpg'); 

創建與所有匹配的文件名(見glob())陣列,或使用array_map()創建一系列文件名:

$images = array_map(
    function($n) { 
     return "/images/carousel-$n.jpg"; 
    }, range(1,10) 
); 
+0

所以,如果我把我所有的照片在文件/照片/首頁/ 我會做$ images = glob('/ Photos/Home /');? –

+0

像''/ Photos/Home/*'','/ Photos/Home/*。jpg''或''/ Photos/Home/carousel - *。jpg''可能會更好。請參閱維基百科上的[glob(編程)](https://en.wikipedia.org/wiki/Glob_%28programming%29)。 – yolenoyer